查找两个CSV文件公共id_no并合并生成目标CSV的技术问询
CSV合并实现方案
功能说明
对共有id_no字段的两个CSV文件a、b做合并,id_no匹配时同步两个文件的字段值,未匹配的缺失字段填充为0,最终输出保留a文件的全部id_no记录。
方法1:Python Pandas实现(通用跨平台)
先安装依赖:
pip install pandas
执行代码:
import pandas as pd # 读取两个输入CSV df_a = pd.read_csv("a.csv") df_b = pd.read_csv("b.csv") # 左连接,保留a的所有id_no,匹配b的字段 df_result = pd.merge(df_a, df_b, on="id_no", how="left") # 未匹配的A1字段填充为0 df_result["A1"] = df_result["A1"].fillna(0) # 导出结果CSV,不输出索引列 df_result.to_csv("c.csv", index=False)
如果需要同时保留a、b两个文件的所有
id_no,把merge的how参数改为how="outer",再对a文件的字段也做填充0处理即可。
方法2:Linux Awk命令行实现(无需Python环境)
适用于制表符分隔的CSV:
awk 'BEGIN{FS=OFS="\t"} NR==FNR{if(NR>1) a[$1]=$2; next} FNR==1{print $0,"A1"; next} {print $0, ($1 in a ? a[$1] : 0)}' b.csv a.csv > c.csv
如果是逗号分隔的CSV,将开头的FS=OFS="\t"修改为FS=OFS=","即可。
内容的提问来源于stack exchange,提问作者Ankita
相关产品推荐
相关产品推荐

