如何在CSV文件中合并指定列?寻求非pandas的实现方案
CSV指定列合并的替代解决方案
针对数千行CSV文件合并第3、4、5列的需求,这里提供几种无需依赖pandas的可行方法:
方法1:Python内置csv模块
无需额外库,处理大文件效率稳定:
import csv input_path = "你的输入文件.csv" output_path = "合并后的输出文件.csv" with open(input_path, 'r', newline='', encoding='utf-8') as infile, \ open(output_path, 'w', newline='', encoding='utf-8') as outfile: reader = csv.reader(infile) writer = csv.writer(outfile) # 处理表头:替换第3-5列为合并后的列名(比如"Location") header = next(reader) new_header = header[:2] + ["Location"] + header[5:] writer.writerow(new_header) # 逐行处理数据,合并指定列 for row in reader: # 用空格分隔合并内容,可根据需求换成分号、逗号等 merged_content = ' '.join(row[2:5]) new_row = row[:2] + [merged_content] + row[5:] writer.writerow(new_row)
方法2:命令行awk工具
适合快速批量处理,无需编写完整脚本(Linux/macOS可直接用,Windows需借助WSL或Git Bash):
# 处理表头+数据,自动合并第3-5列并删除原列 awk 'BEGIN{FS=OFS=","} NR==1{$3="Location"; for(i=4;i<=NF;i++) $i=$(i+2); NF-=2; print; next} {merged=$3" "$4" "$5; $3=merged; for(i=4;i<=NF;i++) $i=$(i+2); NF-=2; print}' 输入文件.csv > 输出文件.csv
说明:FS=OFS=","指定分隔符为逗号;第一行修改表头,后续行合并第3-5列后调整列数。
方法3:Excel/Google Sheets可视化操作
适合不熟悉代码的用户:
- 打开CSV文件,在空白列(比如F列)第一行输入公式:
=C2&" "&D2&" "&E2(C、D、E对应原第3、4、5列,分隔符可自行修改) - 下拉填充公式到所有数据行
- 选中合并后的列,右键选择「复制」,再右键选择「粘贴为值」
- 删除原第3、4、5列,将合并后的列重命名为需要的名称(比如"Location")
内容的提问来源于stack exchange,提问作者a_44
相关产品推荐
相关产品推荐

