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

pandas合并DataFrame时仅保留所需子集列的高效方法

方案1:合并前对右表做列筛选

合并时不要传入完整的df2,仅传入右表的关联键+需要保留的字段即可,这是最通用的实现方式:

df_merged = pd.merge(
    left=df1,
    right=df2[['id_1', 'city']],  # 仅传入需要用到的列
    left_on='id',
    right_on='id_1',
    how='left'
)

如果不需要保留右表的关联键id_1,可以直接在合并后删除,或者改写下写法避免冗余字段:

# 写法1:合并后删除多余关联键
df_merged = pd.merge(df1, df2[['id_1', 'city']], left_on='id', right_on='id_1', how='left').drop(columns='id_1')

# 写法2:提前把右表关联键设为索引,合并时用索引关联,就不会出现重复的关联键列
df_merged = pd.merge(df1, df2.set_index('id_1')['city'], left_on='id', right_index=True, how='left')

方案2:仅单列映射时直接用map方法

如果你只需要从df2关联获取city一列,不需要走完整的merge流程,用map方法性能更高、写法更简洁:

df1['city'] = df1['id'].map(df2.set_index('id_1')['city'])

直接在原df1上新增city列即可,结果和左连接完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:18:00