Python函数之iterrows(),iteritems(),itertuples()的区别说明
在Python Pandas中,有三个常见的函数:iterrows(),iteritems(),itertuples(),它们都能够用来遍历数据帧(DataFrame),但是它们各有不同的使用方式和区别。在本篇攻略中,我们将通过例子展示这三个函数之间的区别和使用方式。
iterrows()
iterrows()函数通过将DataFrame的每一行转换成一个(索引, Series)对来遍历DataFrame,它将每行转换为一个元祖,可以很方便的对该行进行迭代。
下面是一个使用iterrows()函数遍历DataFrame的例子:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Cathy', 'David'], 'age': [25, 32, 18, 47]}
df = pd.DataFrame(data)
for index, row in df.iterrows():
print(index, row['name'], row['age'])
输出结果:
0 Alice 25
1 Bob 32
2 Cathy 18
3 David 47
iteritems()
iteritems()函数是用来遍历DataFrame的列的,将DataFrame的每一列转换成一个(列名, Series)对。与iterrows()不同,该函数返回的是一列数据而不是一行。
下面是一个使用iteritems()函数遍历DataFrame列的例子:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Cathy', 'David'], 'age': [25, 32, 18, 47]}
df = pd.DataFrame(data)
for col, values in df.iteritems():
print(col)
print(values.tolist())
输出结果:
name
['Alice', 'Bob', 'Cathy', 'David']
age
[25, 32, 18, 47]
itertuples()
itertuples()函数通过将DataFrame的每一行转换成一个命名元组来遍历DataFrame,比使用iterrows()函数很快。命名元组可以像访问属性一样获取元素。
下面是一个使用itertuples()函数遍历DataFrame的例子:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Cathy', 'David'], 'age': [25, 32, 18, 47]}
df = pd.DataFrame(data)
for row in df.itertuples():
print(row.Index, row.name, row.age)
输出结果:
0 Alice 25
1 Bob 32
2 Cathy 18
3 David 47
总结
- iterrows():按行遍历DataFrame,并将每一行转换成一个(索引, Series)对。获取每个元素的方法是使用行号和列名。
- iteritems():按列遍历DataFrame,并将每一列转换成一个(列名, Series)对。获取每个元素的方法是使用列名。
- itertuples():按行遍历DataFrame,并将每一行转换成一个元组。获取每个元素的方法是使用属性名称和行号。
三个函数各有用处,具体要根据具体业务场景和需要来选择使用哪个函数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python函数之iterrows(),iteritems(),itertuples()的区别说明 - Python技术站