在pandas
库中,DataFrame.iterrows()
和 DataFrame.columns
是两个非常常用的方法和属性,分别用于迭代数据行和获取列名称。
1. df.iterrows()
- 作用:逐行迭代DataFrame,返回每一行的索引和对应的行数据(作为一个Series)。
- 特点:适用于需要对每一行进行逐行处理的场景。
- 注意事项:
- 使用
iterrows()
效率较低,不适合处理大规模数据。 - 返回的行是一个副本,对它的修改不会影响原DataFrame。
- 使用
示例代码:
import pandas as pd
# 创建示例DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# 使用 iterrows() 迭代每一行
for index, row in df.iterrows():
print(f"Index: {index}, Name: {row['Name']}, Age: {row['Age']}, City: {row['City']}")
输出:
Index: 0, Name: Alice, Age: 25, City: New York
Index: 1, Name: Bob, Age: 30, City: Los Angeles
Index: 2, Name: Charlie, Age: 35, City: Chicago
2. df.columns
- 作用:返回DataFrame的列名,类型为
pandas.Index
。 - 特点:可以用来查看或操作列名。
- 常见操作:
- 获取列名列表:
list(df.columns)
- 修改列名:
df.columns = ['new_col1', 'new_col2', 'new_col3']
- 获取列名列表:
示例代码:
# 查看列名
print("列名:", df.columns)
# 将列名转为列表
columns_list = list(df.columns)
print("列名列表:", columns_list)
# 修改列名
df.columns = ['Full Name', 'Age (Years)', 'Location']
print("修改后的DataFrame:\n", df)
输出:
列名: Index(['Name', 'Age', 'City'], dtype='object')
列名列表: ['Name', 'Age', 'City']
修改后的DataFrame:
Full Name Age (Years) Location
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
总结
iterrows()
用于逐行迭代,返回索引和行数据。columns
是查看和操作列名的重要属性。
如果需要高效处理数据,推荐使用矢量化操作,而不是逐行迭代。