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

如何用Python匹配另一CSV的ID列并追加至目标CSV?

解决方法

你的需求核心是给csv1新增一列,标记出哪些ID在csv2中存在——存在则显示对应ID,不存在显示N/A。之前的merge写法会把csv2的所有列都合并进来,不符合预期,换下面两种方式都能实现:

方法一:调整merge参数实现

只合并csv2的ID列,并重命名新增列:

import pandas as pd

# 读取两个CSV文件
TABLE1 = pd.read_csv('csv1.csv')
TABLE2 = pd.read_csv('csv2.csv')

# 仅提取csv2的ID列进行左合并,并重命名新增列
merged_df = pd.merge(TABLE1, TABLE2[['ID']], on='ID', how='left')
merged_df.rename(columns={'ID_y': 'ID from csv2'}, inplace=True)
# 将空值替换为N/A
merged_df['ID from csv2'] = merged_df['ID from csv2'].fillna('N/A')

# 保存处理后的文件
merged_df.to_csv('处理后的csv1.csv', index=False)

方法二:用map更简洁高效

直接通过映射判断ID是否存在:

import pandas as pd

TABLE1 = pd.read_csv('csv1.csv')
TABLE2 = pd.read_csv('csv2.csv')

# 把csv2的ID转为集合,提升查找效率
csv2_id_set = set(TABLE2['ID'])
# 新增目标列:匹配到就显示ID,否则显示N/A
TABLE1['ID from csv2'] = TABLE1['ID'].apply(lambda x: x if x in csv2_id_set else 'N/A')

# 保存结果
TABLE1.to_csv('处理后的csv1.csv', index=False)

两种方法都能得到你想要的结果,方法二更适合数据量较大的场景,查找速度更快。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:05:11