如何在Python Pandas中基于id合并另一DataFrame的指定列?
解决方法:只合并指定列到df1
嘿,这个需求很容易实现!你只需要在合并操作前,先把df2裁剪成仅包含连接键id和你想要的sal、deg列的子集,再和df1合并就可以了——毕竟原来的代码会把df2的所有列都带进来,我们只需要提前“过滤”掉不需要的add列就行。
修改后的代码(两种写法任选其一)
- 先创建df2的子集,再合并:
# 先提取df2中需要的列(必须包含id作为连接键) df2_selected = df2[['id', 'sal', 'deg']] # 执行合并操作,保留原有的right join逻辑 df_right = pd.merge(df1, df2_selected, how='right', on='id')
- 直接在merge中嵌套列筛选,更简洁:
df_right = pd.merge(df1, df2[['id', 'sal', 'deg']], how='right', on='id')
小提示
- 一定要保留
id列在df2的子集中,不然pd.merge会因为找不到连接键而报错哦! - 你用的
how='right'会保留df2中所有的id记录,如果df1里没有对应的id,那df1的列会显示NaN;如果想保留df1的所有记录,可以改成how='left'。
内容的提问来源于stack exchange,提问作者Sandeep Bhatt
相关产品推荐
相关产品推荐

