DataFrame对象的iterrows()方法
基本用法:
dataframe对象调用iterrows()方法。
会得到一个迭代器,该迭代器每次迭代会返回一个元祖(index,row)
index: 表示当前行的索引,
row:当前行的数据,一个series对象
作用就是:将数据加载得到DataFrame对象,通过迭代方式逐行返回,方便逐行处理数据
小的样例:
import pandas as pd# 创建一个简单的DataFrame
data = {'姓名': ['张三', '李四', '王五'],'年龄': [20, 25, 30],'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)# 使用iterrows()遍历行
for index, row in df.iterrows():print(f"索引: {index}")print(f"姓名: {row['姓名']}, 年龄: {row['年龄']}, 城市: {row['城市']}")print("---")
注意点:
1。由于是逐行处理数据,在处理大型数据时效率比较低,不推荐使用,可以考虑使用向量化操作(如 df['列名'].apply(...)
)来处理数据,速度更快。
2. 每个row是原始数据的副本,所以做修改不会同步到原始数据
第二点这里来个小的样例:
import pandas as pddf = pd.DataFrame({'姓名': ['张三', '李四'], '年龄': [20, 25]})
print("修改前的DataFrame:")
print(df)# 尝试通过iterrows()修改数据
for index, row in df.iterrows():row['年龄'] = row['年龄'] + 1 # 尝试修改年龄row['姓名'] = row['姓名'] + '同学' # 尝试修改姓名print("\n使用iterrows()修改后的DataFrame:")
print(df) # 可以看到原始DataFrame并未发生变化# 正确的修改方式
df['年龄'] = df['年龄'] + 1
df['姓名'] = df['姓名'] + '同学'
print("\n正确修改后的DataFrame:")
print(df)
输出结果:
好了,今天到这里~~