(iterrows) Python函数之iterrows(),iteritems(),itertuples()的区别说明
在Python的数据处理库Pandas中,iterrows()
, iteritems()
, 和 itertuples()
是三个经常用来遍历DataFrame的函数,各自的用法和性能特点有所不同。下面详细解释这三个函数的差异,并提供相应的使用方法和示例代码。
1. iterrows()
iterrows()
是一个生成器,它迭代DataFrame的行,返回每行的索引和一个包含行数据的Series对象。使用iterrows()
遍历较大的DataFrame时可能会比较慢,因为每次迭代会返回一个Series对象。
- 使用方法:
import pandas as pd # 构建示例DataFrame df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6] }) # 使用iterrows遍历 for index, row in df.iterrows(): print(f"Index: {index}, A: {row['A']}, B: {row['B']}")
2. iteritems()
iteritems()
也是一个生成器,它按列遍历DataFrame,返回每列的索引(即列名)和一个包含列数据的Series对象。这对于需要逐列处理数据的场景很有用。
- 使用方法:
import pandas as pd df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6] }) # 使用iteritems遍历 for label, series in df.iteritems(): print(f"Label: {label}, Values: {list(series)}")
3. itertuples()
itertuples()
迭代DataFrame的行,返回一个命名元组。与iterrows()
相比,itertuples()
通常速度更快,因为它不需要为每行构造一个Series对象。但是,返回的元组不允许你修改其内容。
- 使用方法:
import pandas as pd df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6] }) # 使用itertuples遍历 for row in df.itertuples(): # 访问方式不同,使用索引名称作为属性 print(f"Index: {row.Index}, A: {row.A}, B: {row.B}")
注意事项和总结
iterrows()
和itertuples()
都是按行遍历DataFrame,但itertuples()
通常运行速度更快。iteritems()
按列遍历DataFrame,适用于需要对每一列分别进行操作的场景。- 在进行数据修改时,需要谨慎选择。尤其是使用
iterrows()
进行修改,可能不会按预期工作,因为它返回的是原始数据的拷贝。 - 其中
itertuples()
返回的结果不支持直接修改。如果需要修改数据,可能需要采取其他方式。
在处理大规模数据时,推荐使用itertuples()
以提高性能。但具体选择哪种方法还需根据实际的数据处理场景和需求决定。
(赞达拉任务) 魔兽世界怀旧服祖格任务在哪接 ZUG任务交接位置一览 祖尔格拉布任务接受位置 全网首发(图文详解1)
(滚动条美化) Element-ui 滚动条美化的实现 滚动条美化示例 全网首发(图文详解1)