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

如何合并列头匹配的CSV文件并保留不匹配列?

合并多CSV文件:匹配列头并保留所有不匹配列

输入示例

file1.csv

col1,col2,col3,col5
a,b,c,d
d,e,b,g
c,a,d,h

file2.csv

col1,col3,col4,col5
g,d,b,c
o,e,x,h
b,n,w,e

期望输出

col1,col2,col3,col4,col5
a,b,c,,d
d,e,b,,g
c,a,d,,h
g,,d,b,c
o,,e,x,h
b,,n,w,e

解决方案1:Python Pandas库

适合需要灵活扩展处理逻辑的场景:

  1. 安装依赖(未安装时执行):
pip install pandas
  1. 编写合并脚本:
import pandas as pd
import glob

# 获取目标路径下所有CSV文件,可根据实际路径修改
csv_paths = glob.glob("*.csv")

# 批量读取CSV到DataFrame列表
df_list = [pd.read_csv(path) for path in csv_paths]

# 合并所有DataFrame,自动对齐列名,缺失值填充为空字符串
merged_result = pd.concat(df_list, ignore_index=True).fillna("")

# 导出为新CSV,不包含自动生成的索引列
merged_result.to_csv("merged_output.csv", index=False)

说明:

  • pd.concat会自动识别所有出现过的列名,对齐相同列,同时保留所有差异列
  • fillna("")将缺失的单元格转为空字符串,完全匹配示例输出格式
  • ignore_index=True重置合并后数据的行索引,避免原文件索引冲突

解决方案2:命令行工具csvkit

适合无代码快速批量处理:

  1. 安装csvkit:
pip install csvkit
  1. 执行合并命令:
csvstack --fill "" file1.csv file2.csv > merged_output.csv

说明:

  • --fill ""指定缺失值填充为空字符串
  • 可直接追加多个CSV文件名,或用通配符*.csv批量处理目录下所有CSV文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:50:21