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

如何用Python基于Key列对比两个CSV文件(替代Excel VLOOKUP)

实现方案

当然可以用Python实现这个需求,用pandas库就能轻松完成和Excel VLOOKUP类似的匹配逻辑,下面是具体的代码和步骤:

步骤1:安装依赖(如果未安装)

如果你的环境里还没有pandas,先执行安装命令:

pip install pandas

步骤2:编写Python代码

创建一个.py文件(比如csv_match.py),写入以下代码:

import pandas as pd

# 读取两个CSV文件
abc_df = pd.read_csv('abc.csv')
xyz_df = pd.read_csv('xyz.csv')

# 把abc.csv里的uid和isDisabled转为字典,方便快速查找
abc_status_dict = abc_df.set_index('uid')['isDisabled'].to_dict()

# 定义逻辑生成abc_status列
def generate_abc_status(row):
    user_id = row['uid']
    # 先判断uid是否在abc.csv中存在
    if user_id not in abc_status_dict:
        return 'Does not exist in ABC'
    # 存在的话判断状态
    abc_status = abc_status_dict[user_id]
    if abc_status == 'Disabled':
        return 'Disabled in ABC'
    else:
        return 'NOCHANGE'

# 给xyz_df添加新列
xyz_df['abc_status'] = xyz_df.apply(generate_abc_status, axis=1)

# 导出结果到output.csv,保持引号格式和原文件一致
xyz_df.to_csv('output.csv', index=False, quotechar='"', quoting=1)

代码说明

  • 用字典构建uid到isDisabled的映射,比直接用DataFrame合并更高效,适合数据量较大的场景
  • 自定义函数generate_abc_status处理每一行的逻辑,完全对应你需要的三种输出情况
  • 导出时设置quoting=1会给所有字段加上双引号,和你期望的输出格式完全匹配

运行代码后,就能得到你想要的output.csv文件,和Excel处理的结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:37:05