如何使用Pandas的iterrows方法写入Excel指定单元格?
用Pandas的iterrows实现单元格写入的正确方法
你之前的代码无法生效的核心原因是:iterrows()返回的行对象(row[1])是原DataFrame行数据的副本,修改副本不会同步到原DataFrame中,自然也无法最终写入Excel。
下面是正确的实现方式,通过行索引定位原DataFrame的单元格进行修改:
import pandas as pd # 读取Excel数据 raw_data = pd.read_excel(filepath, sheet_name="Feuil2") # 遍历行,同时获取行索引和行数据 for idx, row in raw_data.iterrows(): print(row['name']) # 通过原DataFrame的loc方法,用索引定位指定单元格修改 raw_data.loc[idx, 'name'] = "Cassandra" # 必须将修改后的DataFrame写回Excel文件,否则仅在内存中生效 raw_data.to_excel(filepath, sheet_name="Feuil2", index=False)
关键注意点:
- 一定要调用
to_excel()方法将修改后的DataFrame保存回文件,否则所有修改只停留在内存中,不会改变原Excel。 - 如果是要整列统一修改,直接用
raw_data['name'] = "Cassandra"会比iterrows()效率高得多;只有需要逐行判断条件修改时,才适合用iterrows()遍历。
内容的提问来源于stack exchange,提问作者clemdcz
相关产品推荐
相关产品推荐

