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

合并Pandas DataFrame并替换指定列的实现方法

解决方案

方法一:合并后清理列

先执行你原本的合并操作,再删除来自df1的C_x列,并将df2的C_y重命名为C:

import pandas as pd

df1 = pd.DataFrame({'A':[3,5,2,5], 'B':['w','x','y','z'], 'C':['0','0','0','0']})
df2 = pd.DataFrame({'B':['w','x','y','z'],'C':['1','2','3','4'], 'D':[10,20,30,40]})

# 执行合并
merged_df = df1.merge(df2, how='outer', on='B')
# 删除df1的C列,重命名df2的C列
merged_df = merged_df.drop('C_x', axis=1).rename(columns={'C_y': 'C'})
print(merged_df)

方法二:提前删除不需要的列(更高效)

既然你不需要df1的C列,直接先删除df1中的C列再合并,合并后不会产生重复的C列,一步到位:

import pandas as pd

df1 = pd.DataFrame({'A':[3,5,2,5], 'B':['w','x','y','z'], 'C':['0','0','0','0']})
df2 = pd.DataFrame({'B':['w','x','y','z'],'C':['1','2','3','4'], 'D':[10,20,30,40]})

# 删除df1的C列后合并
merged_df = df1.drop('C', axis=1).merge(df2, how='outer', on='B')
print(merged_df)

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

A  B  C   D
0  3.0  w  1  10
1  5.0  x  2  20
2  2.0  y  3  30
3  5.0  z  4  40

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:15:40