如何用Pandas将CSV文件首列改为从1开始的序列?
替换CSV首列为从1开始的递增序列
下面提供几种不同工具的解决方案,按需选择:
方法1:Python脚本(通用跨平台)
适合需要批量处理或自动化的场景,代码如下:
import csv # 输入输出文件路径 input_file = "your_input.csv" output_file = "your_output.csv" with open(input_file, 'r', newline='') as infile, open(output_file, 'w', newline='') as outfile: reader = csv.reader(infile) writer = csv.writer(outfile) # 处理表头(如果有表头) header = next(reader) header[0] = "index" # 可选:修改表头首列名称,不需要可删除此行 writer.writerow(header) # 处理数据行,行号从1开始 row_num = 1 for row in reader: row[0] = str(row_num) writer.writerow(row) row_num += 1
- 提示:如果CSV没有表头,删除处理表头的代码块,直接从
row_num = 1开始循环即可。
方法2:Excel(可视化操作)
适合不熟悉编程的用户:
- 用Excel打开目标CSV文件
- 选中首列的第一个数据单元格(若有表头,选择表头下方的第一个单元格),输入
1 - 选中下一个单元格,输入
2 - 同时选中这两个单元格,鼠标移到单元格右下角的填充柄(小方块)上,按住左键下拉到最后一行,Excel会自动填充递增序列
- 覆盖原首列内容后,保存文件即可
方法3:awk命令行(Linux/macOS/WSL)
适合终端用户,一行命令搞定:
awk -F',' -v OFS=',' '{print NR, substr($0, index($0, FS)+1)}' your_input.csv > your_output.csv
- 解释:
NR是awk内置变量,代表当前行号(从1开始);substr($0, index($0, FS)+1)截取原行中第一个分隔符之后的所有内容,和行号拼接后输出,自动替换原首列。
内容的提问来源于stack exchange,提问作者Recep Durgut
相关产品推荐
相关产品推荐

