You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中为CSV文件新增列并写入指定列表数据

在Python中给CSV添加新列的实现方案

嘿,我给你准备了两种实用的方法来完成这个需求,一种用Python自带的标准库,不用额外装包;另一种用pandas,处理表格数据更高效——看你哪种顺手就用哪种~

先明确下你的需求:

原CSV内容:

A,Film, Yes
B,Grass,No
C,Bottle,No
D,Love,Yes
E,Red,No

要追加的新列数据:['No','No','Yes','Yes','No']
期望得到的最终CSV:

A,Film, Yes,No
B,Grass,No,No
C,Bottle,No,Yes
D,Love,Yes,Yes
E,Red,No,No

方法一:用Python标准库csv(无需额外依赖)

这种方法适合不想安装第三方库的场景,完全用Python自带工具搞定:

代码示例

import csv

# 情况1:如果你的CSV是本地文件
# 先读取原文件内容
original_rows = []
with open("original.csv", "r", newline="") as infile:
    reader = csv.reader(infile)
    original_rows = list(reader)

# 情况2:如果你的CSV是内存中的字符串(像你给出的示例)
# original_rows = [
#     ['A', 'Film', ' Yes'],
#     ['B', 'Grass', 'No'],
#     ['C', 'Bottle', 'No'],
#     ['D', 'Love', 'Yes'],
#     ['E', 'Red', 'No']
# ]

# 待添加的新列数据
new_column = ['No','No','Yes','Yes','No']

# 把新列的每个元素对应追加到原每行后面
updated_rows = [row + [val] for row, val in zip(original_rows, new_column)]

# 写入新的CSV文件
with open("updated.csv", "w", newline="") as outfile:
    writer = csv.writer(outfile)
    writer.writerows(updated_rows)

说明

  • 用csv.reader读取原文件的每一行,得到一个二维列表
  • 用zip把原行和新列的元素一一对应,通过列表推导式快速拼接成新行
  • 最后用csv.writer把新内容写入文件,newline=""是为了避免Windows系统下出现多余空行

方法二:用pandas库(简洁高效,适合数据处理场景)

如果平时经常处理表格数据,pandas绝对是你的好帮手,代码会更简洁:

步骤1:安装pandas(如果没装的话)

pip install pandas

代码示例

import pandas as pd
from io import StringIO  # 如果是处理字符串形式的CSV才需要

# 情况1:读取本地CSV文件
df = pd.read_csv("original.csv", header=None)  # 因为原CSV没有表头,所以header=None

# 情况2:处理字符串形式的CSV(像你给出的示例)
# csv_str = """A,Film, Yes
# B,Grass,No
# C,Bottle,No
# D,Love,Yes
# E,Red,No"""
# df = pd.read_csv(StringIO(csv_str), header=None)

# 添加新列:因为原数据有3列,所以新列的索引是3(也可以自定义列名,比如df['new_col'] = new_column)
new_column = ['No','No','Yes','Yes','No']
df[3] = new_column

# 保存为新的CSV文件,不保留pandas自动生成的索引和表头
df.to_csv("updated.csv", index=False, header=False)

说明

  • pd.read_csv读取CSV内容,header=None告诉pandas原文件没有表头行
  • 直接通过列索引(或列名)给DataFrame追加新列,pandas会自动对应每行数据
  • to_csv时设置index=False和header=False,确保输出的CSV和你期望的格式一致

内容的提问来源于stack exchange,提问作者JFroz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:40:53