Python函数之iterrows(),iteritems(),itertuples()的区别说明

  • Post category:Python
  1. iterrows()
  2. 概述:iterrows()函数可以迭代DataFrame的每一行,每次循环返回一个元组,第一项是行的索引,第二项是Series对象。
  3. 适用情况:当需要逐行迭代DataFrame,并根据每一行数据进行处理时,可以使用iterrows()函数。

示例:

import pandas as pd

df = pd.DataFrame({'name': ['Tom', 'Jerry', 'Mike'], 'age': [25, 30, 28]})

for index, row in df.iterrows():
    print(index, row["name"], row["age"])

输出:

0 Tom 25
1 Jerry 30
2 Mike 28
  1. iteritems()
  2. 概述:iteritems()函数可以迭代DataFrame的每一列,每次循环返回一个元组,第一项是列的名称,第二项是Series对象。
  3. 适用情况:当需要逐列迭代DataFrame,并根据每一列数据进行处理时,可以使用iteritems()函数。

示例:

import pandas as pd

df = pd.DataFrame({'name': ['Tom', 'Jerry', 'Mike'], 'age': [25, 30, 28]})

for col_name, col_data in df.iteritems():
    print(col_name, col_data.sum())

输出:

name TomJerryMike
age 83
  1. itertuples()
  2. 概述:itertuples()函数可以迭代DataFrame的每一行,每次循环返回一个命名元组,元组的字段名对应DataFrame的列名,元组的值对应DataFrame的每一行数据。
  3. 适用情况:当需要逐行迭代DataFrame,并且需要同时获取行的索引和每一列的数据时,可以使用itertuples()函数。

示例:

import pandas as pd

df = pd.DataFrame({'name': ['Tom', 'Jerry', 'Mike'], 'age': [25, 30, 28]})

for row in df.itertuples():
    print(row.Index, row.name, row.age)

输出:

0 Tom 25
1 Jerry 30
2 Mike 28

结论:
– iterrows()适用于需要逐行迭代DataFrame的场景,并且需要获取每一行数据的具体值,效率较低。
– iteritems()适用于需要逐列迭代DataFrame的场景,并且需要获取每一列数据的具体值,效率较低。
– itertuples()适用于需要逐行迭代DataFrame的场景,并且需要同时获取行的索引和每一列的数据,效率较高。