在Pandas DataFrame中对行和列进行迭代

  • Post category:Python

在Pandas DataFrame中对行和列进行迭代,通常会使用iterrows函数、itertuples函数和iteritems函数。下面是对它们的详细讲解。

1. iterrows函数

iterrows函数将DataFrame中的每一行作为一个(index, Series)元组进行循环迭代。其中,index是DataFrame每行的行标签,而Series则是该行的数据。

下面是iterrows函数的语法:

for index, row in dataframe.iterrows():
    # 操作每一行的数据,例如 row['column_name']

示例代码:

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'], 
        'age': [25, 30, 35], 
        'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)

for index, row in df.iterrows():
    print(f"Index: {index}, Name: {row['name']}, Age: {row['age']}, Gender: {row['gender']}")

运行结果:

Index: 0, Name: Alice, Age: 25, Gender: F
Index: 1, Name: Bob, Age: 30, Gender: M
Index: 2, Name: Charlie, Age: 35, Gender: M

2. itertuples函数

itertuples函数可以拆分每一行为一个具有属性名的元组进行迭代。元组的第一个元素是行标签,之后的每个元素表示该行中相应列的值。

下面是itertuples函数的语法:

for row in dataframe.itertuples():
    # 操作每一行的数据,例如 row.column_name

示例代码:

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'], 
        'age': [25, 30, 35], 
        'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)

for row in df.itertuples():
    print(f"Index: {row.Index}, Name: {row.name}, Age: {row.age}, Gender: {row.gender}")

运行结果:

Index: 0, Name: Alice, Age: 25, Gender: F
Index: 1, Name: Bob, Age: 30, Gender: M
Index: 2, Name: Charlie, Age: 35, Gender: M

3. iteritems函数

iteritems函数将DataFrame中的每个列作为一个Series对象进行循环迭代。其中,Series的名称是DataFrame的列名称,而Series对象则是该列的数据。

下面是iteritems函数的语法:

for column_name, column_data in dataframe.iteritems():
    # 操作每一列的数据,例如 column_data[0]

示例代码:

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'], 
        'age': [25, 30, 35], 
        'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)

for column_name, column_data in df.iteritems():
    print(f"Column Name: {column_name}")
    for index, value in column_data.items():
        print(f"    Index: {index}, Value: {value}")

运行结果:

Column Name: name
    Index: 0, Value: Alice
    Index: 1, Value: Bob
    Index: 2, Value: Charlie
Column Name: age
    Index: 0, Value: 25
    Index: 1, Value: 30
    Index: 2, Value: 35
Column Name: gender
    Index: 0, Value: F
    Index: 1, Value: M
    Index: 2, Value: M

综上,以上三种方法可以用于在Pandas DataFrame中对行和列进行迭代。具体根据使用需求选择相应的函数。