目录
- Pandas Dataframe数据帧的迭代
- 迭代行
- 迭代列
- 总结
Pandas Dataframe数据帧的迭代
迭代数据帧通常不是推荐的做法,因为 pandas
的设计初衷是向量化操作以提高效率。然而,在某些情况下,也可能需要逐行或逐列迭代数据。
需要注意的是,迭代数据帧的行或列可能会导致性能下降,特别是对于大型数据集。在可能的情况下,最好使用向量化操作来提高效率。
迭代行
1.使用 .iterrows()
.iterrows()
是一个生成器,它迭代数据帧的索引和行。- 对于每一行,它返回一个包含索引和该行数据的元组。
import pandas编程客栈 as pd df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) for index, row in df.ite编程rrows(): print(f"Index: {index}") print(row)
2.使用 .itertuples()
.itertuples()
方法比.iterrows()
更快,因为它返回命名元组,这些元组在python中的性能优于字典。- 返回的元组的第一个元素是行的索引,其余元素是行中的数据。
.itertuples()
返回的是命名元组,可以通过属性名称访问这些元素,例如row.A
、row.B
等。
import pandas as pd dandroidf = pd.DataFrame({ 'A': [10, 20, 30], 'B': [40, 50, 60], 'C': ['p', 'q', 'r编程'] }) for row in df.itertuples(): print(row) ''' Pandas(Index=0, A=10, B=40, C='p') Pandas(Index=1, A=20, B=50, C='q') Pandas(Index=2, A=30, B=60, C='r')'''
迭代列
迭代列通常更简单,因为可以直接迭代数据帧的列名或访问列数据。
import pandas as pd # 创建一个DataFrame df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) # 方法1: 迭代列名 for column in df.columnswww.devze.com: print(f"Column Name: {column}") # 通过列名访问列数据 print(df[column]) # 方法2: 直接迭代DataFrame对象(默认迭代列名) for column in df: print(f"Column Name: {column}") print(df[column]) # 方法3: 使用df.items()同时迭代列名和数据 for column, data in df.items(): print(f"Column Name: {column}") # data变量直接包含列数据,无需通过df[column]访问 print(data)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论