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

如何用Pandas合并含同含义不同表头列的两个CSV文件

解决CSV合并后保留重复连接键列的问题

我来帮你搞定这个问题!你遇到的核心问题是pd.merge()在使用left_on和right_on指定不同名称的连接键时,默认会同时保留这两个键列,所以才会出现id和user_id并存的情况。这里有两种简单有效的解决方案:

方法一:合并前重命名匹配列

提前把b.csv里的user_id重命名为id,这样就可以直接用on='id'进行合并,不会产生重复列:

import pandas as pd

df1 = pd.read_csv('a.csv')
df2 = pd.read_csv('b.csv')

# 将df2的user_id列重命名为id
df2.rename(columns={'user_id': 'id'}, inplace=True)

# 基于统一的id列合并
df3 = pd.merge(df1, df2, on='id', how='outer')
df3.to_csv('c.csv', index=False)

方法二:合并后删除重复列

如果不想修改原始的DataFrame结构,可以在合并完成后直接删除多余的user_id列:

import pandas as pd

df1 = pd.read_csv('a.csv')
df2 = pd.read_csv('b.csv')

df3 = pd.merge(df1, df2, left_on=['id'], right_on=['user_id'], how='outer')

# 删除重复的user_id列
df3.drop(columns=['user_id'], inplace=True)
df3.to_csv('c.csv', index=False)

两种方法都能得到你期望的结果:

id name country gender
1 Cyrus MY female
2 May US male

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:09:34