Pandas 如何行遍历DataFrame
在本文中,我们将介绍如何通过使用Pandas在DataFrame中行遍历数据。在实际场景中,有时候需要遍历DataFrame中的每一行来执行某些操作,例如数据清洗和转换。
阅读更多:Pandas 教程
方法一:iterrows(逐行迭代)
iterrows() 方法可以按行迭代DataFrame。该方法返回两个值,分别是行索引和行数据,我们可以通过解包操作来获取它们。然后我们可以使用for循环来遍历每一行数据。
示例:
import pandas as pd
# 创建数据
data = {"Name": ["Tom", "Jerry", "Peter"], "Age": [23, 25, 27], "Gender": ["Male", "Female", "Male"]}
df = pd.DataFrame(data)
# 遍历数据
for index, row in df.iterrows():
print(row["Name"], row["Age"], row["Gender"])
输出结果:
Tom 23 Male
Jerry 25 Female
Peter 27 Male
方法二:itertuples(逐行遍历元组)
itertuples() 方法可以按行迭代DataFrame。该方法返回一个命名元组,其中第一个元素是行索引,后面的元素是行数据。这种方式比使用iterrows()方法更高效。
示例:
import pandas as pd
# 创建数据
data = {"Name": ["Tom", "Jerry", "Peter"], "Age": [23, 25, 27], "Gender": ["Male", "Female", "Male"]}
df = pd.DataFrame(data)
# 遍历数据
for row in df.itertuples():
print(row.Name, row.Age, row.Gender)
输出结果:
Tom 23 Male
Jerry 25 Female
Peter 27 Male
方法三:apply(逐行应用函数)
apply() 方法可以用于按行应用函数,这种方式相对于逐行迭代的方式更加高效。我们可以通过设置axis参数来控制按行还是按列应用函数。
示例:
import pandas as pd
# 创建数据
data = {"Name": ["Tom", "Jerry", "Peter"], "Age": [23, 25, 27], "Gender": ["Male", "Female", "Male"]}
df = pd.DataFrame(data)
# 定义函数
def print_row(row):
print(row["Name"], row["Age"], row["Gender"])
# 按行应用函数
df.apply(print_row, axis=1)
输出结果:
Tom 23 Male
Jerry 25 Female
Peter 27 Male
总结
在本文中,我们介绍了三种方法来行遍历Pandas DataFrame数据。iterrows() 和 itertuples() 是逐行迭代的方式,而 apply() 则是逐行应用函数的方式。在实际应用中,我们需要根据具体场景来选择最合适的方法。
极客笔记