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

pandas按列执行inner merge时如何保留第一个DataFrame的原始索引

解决方法

merge操作默认会重置结果的索引,你只需要提前把左表的原始索引保存为普通列,合并完成后再恢复为索引即可,完整代码如下:

# 步骤1:将左表的原始索引转为普通列保存
ClientFileDf = ClientFileDf.reset_index(names="original_index")

# 步骤2:执行原有的合并逻辑
df2 = pd.merge(ClientFileDf, df_CPCodeDF,  how='inner', left_on=['CPCode','CPPAN'], right_on = ['HEDGE_CP_CODE','HEDGE_PAN_NO'])

# 步骤3:删除多余列,恢复原始索引
df2.drop(['HEDGE_CP_CODE','HEDGE_PAN_NO'], axis=1, inplace=True)
df2 = df2.set_index('original_index')
# 可选:清空索引名,和原ClientFileDf的索引格式保持一致
df2.index.name = None

如果你的pandas版本低于1.5.0,不支持reset_index的names参数,可以替换第一步的代码为:

ClientFileDf['original_index'] = ClientFileDf.index

运行后最终得到的df2索引就是你需要的原始索引1和3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:15:03