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

如何用Python基于另一个CSV列更新目标CSV的多列数据

Python实现CSV列值替换方案

用pandas可以高效完成这个需求,代码简洁且易维护,以下是具体实现方案:

前置准备

如果未安装pandas,先执行安装命令:

pip install pandas

完整代码

import pandas as pd

# 读取两个CSV文件
master_df = pd.read_csv('Master.csv')
reference_df = pd.read_csv('Reference.csv')

# 构建Code到Value的映射字典(确保Code为字符串类型,避免类型不匹配导致的匹配失败)
reference_df['Code'] = reference_df['Code'].astype(str)
code_to_value = reference_df.set_index('Code')['Value'].to_dict()

# 替换Master.csv中的Column2和Column4
master_df['Column2'] = master_df['Column2'].astype(str).map(code_to_value)
master_df['Column4'] = master_df['Column4'].astype(str).map(code_to_value)

# 保存处理后的结果到新CSV文件
master_df.to_csv('Result.csv', index=False)

关键逻辑说明

  • 映射字典构建:通过set_index('Code')['Value'].to_dict()将Reference.csv的Code作为键、Value作为值生成字典,后续替换时能快速查找对应值,效率远高于循环匹配。
  • 类型统一:强制将Code及Master中待替换列转为字符串,避免因数值/字符串类型不一致导致的匹配失败(比如"C001"和C001会被视为不同值)。
  • 批量替换:map()方法批量处理列内所有值,无需手动遍历行。

示例验证

输入文件示例

Master.csv

Column1,Column2,Column3,Column4
A,C001,X,D002
B,C003,Y,D001

Reference.csv

Code,Value
C001,Category1
C003,Category3
D001,Data1
D002,Data2

输出Result.csv

Column1,Column2,Column3,Column4
A,Category1,X,Data2
B,Category3,Y,Data1

可选扩展

  • 如果需要保留原始列数据,可以先复制列再替换:
    master_df['Column2_Original'] = master_df['Column2']
    master_df['Column2'] = master_df['Column2'].map(code_to_value)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 15:02:35