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

Python中如何在CSV文件最开头新增列?(非Pandas方法)

在CSV文件开头添加列的几种非Pandas方法

针对你的需求(原表头a、b、c、d,数据行0、1、2、3,新增首列letters,数据行值为numbers),以下是几种无需依赖Pandas的可行方案:

方法1:使用Python内置csv模块

纯Python实现,无需安装第三方库,适配所有Python环境:

import csv

input_path = "input.csv"
output_path = "output.csv"

# 定义新增列的名称和固定值
new_col_header = "letters"
new_col_data = "numbers"

with open(input_path, 'r', newline='') as infile, open(output_path, 'w', newline='') as outfile:
    csv_reader = csv.reader(infile)
    csv_writer = csv.writer(outfile)
    
    # 处理表头:在原表头前插入新列名
    original_header = next(csv_reader)
    csv_writer.writerow([new_col_header] + original_header)
    
    # 处理数据行:每行前插入固定值
    for row in csv_reader:
        csv_writer.writerow([new_col_data] + row)

方法2:命令行awk工具(Linux/macOS/WSL)

适合快速批量处理文件,一行命令完成:

awk 'BEGIN{FS=OFS=","} NR==1{print "letters,"$0} NR>1{print "numbers,"$0}' input.csv > output.csv

说明:

  • FS=OFS="," 设置输入输出的分隔符为逗号
  • NR==1 匹配表头行,在开头拼接letters,
  • NR>1 匹配所有数据行,在开头拼接numbers,
  • 结果重定向到新文件output.csv

方法3:手动编辑(小文件场景)

如果文件行数不多,直接用文本编辑器(VS Code、Notepad++等)打开操作:

  1. 在第一行表头最前端添加 letters,
  2. 逐行在数据内容最前端添加 numbers,
    注意:确保所有行的逗号分隔数一致,避免破坏CSV格式。

补充:Pandas正确实现方式

如果你后续想解决Pandas的使用问题,正确写法如下(避免生成多余索引列):

import pandas as pd

df = pd.read_csv("input.csv")
# 在第0位(最开头)插入列
df.insert(loc=0, column="letters", value="numbers")
# 保存时禁用索引
df.to_csv("output.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:35:23