如何使用Python向CSV文件新增列并填入列表中的对应值
Python实现CSV新增列并填入列表值的方案
下面提供两种常用实现方式,可根据你的场景选择:
方法1:使用pandas库(代码最简洁,推荐)
需要先安装pandas依赖:pip install pandas
操作逻辑为读取CSV到DataFrame对象后直接赋值新列,再写回文件即可,示例代码:
import pandas as pd # 读取原始CSV文件 df = pd.read_csv("你的原始文件路径.csv") # 准备要填入新列的列表,*请确保列表长度和CSV的行数(不含表头)完全一致* new_column_data = ["值1", "值2", "值3", "..."] # 新增列,可自定义列名,示例为new_col df["new_col"] = new_column_data # 写入新文件,index=False表示不导出pandas自动生成的行索引 df.to_csv("修改后的文件路径.csv", index=False, encoding="utf-8-sig")
提示:如果需要直接覆盖原文件,把输出路径改为原始文件路径即可,操作前建议备份原文件避免数据丢失。
方法2:使用标准库csv(无需安装第三方依赖)
适合环境不允许安装额外包的场景,直接调用Python自带的csv模块处理,示例代码:
import csv # 基础配置 input_file = "原始文件路径.csv" output_file = "修改后的文件路径.csv" new_col_name = "new_col" # 自定义新列名 new_column_data = ["值1", "值2", "值3", "..."] # 待填入的列表 with open(input_file, "r", encoding="utf-8") as f_in, open(output_file, "w", encoding="utf-8-sig", newline="") as f_out: reader = csv.reader(f_in) writer = csv.writer(f_out) # 处理表头:追加新列名后写入 header = next(reader) header.append(new_col_name) writer.writerow(header) # 逐行处理,对应插入列表的值 for index, row in enumerate(reader): row.append(new_column_data[index]) writer.writerow(row)
注意事项
- 两种方法都要求待填充的列表长度和CSV除表头外的行数完全匹配,否则会出现数据错位或者报错
- 如果你的CSV是特殊分隔符(比如制表符分隔),可以在读取时加
sep="\t"参数指定分隔符
内容的提问来源于stack exchange,提问作者user245699
相关产品推荐
相关产品推荐

