如何使用Python实现两个CSV文件基于指定列的数据匹配关联
基于CSV列关联匹配并新增列的解决方案
需求说明
- 两个CSV文件,需根据第一个文件的**D列(编码列)**与第二个文件的编码列匹配,在D列旁新增"详情"列,填入对应匹配内容
- 支持动态变化的CSV内容,无需手动编写数据列表,适配数百条数据规模
实现代码(Python + Pandas)
Pandas是处理CSV批量数据的高效工具,以下代码无需硬编码数据,直接读取文件完成匹配:
import pandas as pd # 读取两个CSV文件(替换为你的实际文件路径) df_main = pd.read_csv("主文件.csv") df_detail = pd.read_csv("详情匹配文件.csv") # 以编码列为键关联数据,保留主文件所有行(适配动态变化内容) df_merged = pd.merge(df_main, df_detail, on="编码", how="left") # 调整列顺序:将"详情"列移到编码列右侧 code_col_pos = df_main.columns.get_loc("编码") cols = df_main.columns.tolist() cols.insert(code_col_pos + 1, "详情") df_final = df_merged[cols] # 保存结果CSV(避免Excel乱码) df_final.to_csv("匹配结果.csv", index=False, encoding="utf-8-sig")
关键说明
- 若两个CSV的编码列名不一致,可修改
merge参数为left_on="主文件编码列名", right_on="详情文件编码列名" how="left"会保留主文件所有行,无匹配的详情位置将显示空值,完全适配主文件动态更新的场景utf-8-sig编码确保导出的CSV在Excel中正常显示,不会出现乱码
内容的提问来源于stack exchange,提问作者a_44
相关产品推荐
相关产品推荐

