📅  最后修改于: 2023-12-03 15:07:45.257000             🧑  作者: Mango
在 Pandas 中,我们经常需要处理 Dataframe 中的行数据。本文将介绍迭代 Pandas Dataframe 行的不同方法。
我们先构造一个示例数据集:
import pandas as pd
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Gender': ['F', 'M', 'M']})
这个示例数据集包含了三列:Name、Age 和 Gender,分别表示名字、年龄和性别。现在我们要迭代这个数据集中的行数据。
iterrows()
方法可以遍历 Pandas Dataframe 中的每一行,并且返回每一行的 index 和数据。我们可以通过解包的方式来获取 index 和数据:
for index, row in df.iterrows():
print(index, row['Name'], row['Age'], row['Gender'])
输出结果为:
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
需要注意的是,iterrows()
方法返回的是一个迭代器,所以在遍历 Dataframe 的时候,需要使用 for 循环来逐行处理数据。
itertuples()
方法返回一个命名元组,其中包含了每一行的数据。我们可以通过解包的方式来获取这些数据字段:
for row in df.itertuples():
print(row.Index, row.Name, row.Age, row.Gender)
输出结果为:
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
需要注意的是,返回的命名元组中包含了 Index 字段,也就是每一行的索引值。
我们还可以结合使用 iterrows()
和 zip()
方法来遍历 Pandas Dataframe 中的每一行:
for Name, Age, Gender in zip(df['Name'], df['Age'], df['Gender']):
print(Name, Age, Gender)
输出结果为:
Alice 25 F
Bob 30 M
Charlie 35 M
需要注意的是,我们可以通过访问 df[column_name] 的方式来获取某一列的数据。
最后,我们还可以使用 apply()
方法结合 lambda 函数来遍历 Pandas Dataframe 中的每一个行:
df.apply(lambda row: print(row['Name'], row['Age'], row['Gender']), axis=1)
输出结果为:
Alice 25 F
Bob 30 M
Charlie 35 M
需要注意的是,apply()
方法是对 DataFrame 或者某一行/列进行操作的函数,它可以接收一个 lambda 函数作为参数,其中 axis=1 表示对行进行操作。