如何使用pandas为已存在的CSV文件添加右侧新列
问题原因
CSV是纯文本格式,pandas.DataFrame.to_csv()的mode='a'参数是行追加模式,只会把新的DataFrame内容作为新行拼接到原有文件末尾,不会自动做横向列合并的逻辑,因此你当前的写法会把Eye列的数据追加到原有第一列下方,无法实现新增右侧列的需求。
解决方法
修改code-2.py逻辑:先读取原有CSV文件内容到DataFrame,将新的Eye列合并到原有DataFrame的右侧,再整体覆盖写入原CSV文件即可。
修改后的code-2.py示例代码:
import pandas as pd # 原有逻辑生成Eye列数据 df = pd.DataFrame(results) # 读取已存在的test.csv old_df = pd.read_csv('test.csv') # 横向合并新旧数据,新增Eye列到右侧 # 若你的results直接是Eye列的数值列表,可直接写 old_df['Eye'] = results 省略生成df的步骤 combined_df = pd.concat([old_df, df], axis=1) # 覆盖写入原CSV文件 combined_df.to_csv('test.csv', mode='w', header=True, index=False)
注意事项
- 需确保新生成的Eye列行数与原有CSV的行数完全一致,否则合并后会出现空值
NaN - 如果需要一次性追加多列,只需要保证新生成的DataFrame包含对应列即可,
concat方法会自动把所有新列追加到原有数据右侧
内容的提问来源于stack exchange,提问作者Dinuli Thalakumbura
相关产品推荐
相关产品推荐

