Python是否支持向CSV文件写入主列下属的多列数据?
实现CSV多列数据堆叠到主列下方的方法
这个需求完全可行,以下是几种实用的实现方式:
方法1:Excel/Google Sheets手动操作
适合数据量小的场景:
- 假设主列为列A,需要合并的是列B、C
- 选中列B的所有数据(不含表头),复制后粘贴到列A现有数据的末尾
- 重复上述操作,把列C的数据粘贴到列A的最下方
- 最后删除原B、C列,另存为CSV格式即可
方法2:Python脚本批量处理
适合数据量大或者需要重复操作的场景:
import csv # 配置文件路径和目标列名 input_path = "你的输入文件.csv" output_path = "输出文件.csv" # 按顺序填写主列和需要堆叠的其他列名 target_columns = ["主列名称", "列1", "列2"] stacked_rows = [] # 先写入主列的表头和数据 with open(input_path, "r", newline="", encoding="utf-8") as f: reader = csv.DictReader(f) stacked_rows.append([target_columns[0]]) for row in reader: stacked_rows.append([row[target_columns[0]]]) # 依次追加其他列的数据(跳过表头) for col in target_columns[1:]: with open(input_path, "r", newline="", encoding="utf-8") as f: reader = csv.DictReader(f) next(reader) # 跳过表头 for row in reader: stacked_rows.append([row[col]]) # 写入结果到新CSV with open(output_path, "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerows(stacked_rows)
- 注意:根据你的实际CSV列名修改
target_columns列表,替换文件路径即可运行。
方法3:命令行awk工具处理
适合熟悉命令行的用户(假设CSV无表头,列用逗号分隔):
# 提取第1列(主列)写入输出文件 awk -F ',' '{print $1}' 输入文件.csv > 输出文件.csv # 追加第2列数据(跳过表头) awk -F ',' 'NR>1{print $2}' 输入文件.csv >> 输出文件.csv # 追加第3列数据(跳过表头) awk -F ',' 'NR>1{print $3}' 输入文件.csv >> 输出文件.csv
- 如果CSV有表头,
NR>1可以保留,避免重复写入表头。
内容的提问来源于stack exchange,提问作者Tiav RANDRIA
相关产品推荐
相关产品推荐

