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

Pandas使用df.merge时如何保留数据框的原始间距?

Pandas merge保留原始列顺序的方法

嘿,这个问题其实很容易搞定,甚至多数情况下默认的merge行为就刚好符合你的需求!

默认行为就满足你的例子需求

当你执行df1.merge(df2, on=['C'])时,Pandas的默认规则是:保留左数据框(df1)的原始列顺序,然后追加右数据框(df2)中除了合并键(这里是C)之外的所有列。

拿你的例子来说:

  • df1的列是X, a, b, C
  • df2的列是C, D
    合并后,结果的列顺序会自动是X, a, b, C, D,完全就是你想要的样子,不需要额外设置任何参数。

手动控制列顺序的场景(如果默认不满足时)

如果遇到特殊情况——比如df2里有和df1重名的非合并列,或者你需要自定义更复杂的列顺序——可以手动指定最终的列列表:

import pandas as pd

# 假设你的df1和df2已经定义好了
merged_df = df1.merge(df2, on=['C'])

# 构造想要的列顺序:df1的原始列 + df2中独有的列
desired_cols = df1.columns.tolist() + [col for col in df2.columns if col not in df1.columns]

# 重新设置列顺序
merged_df = merged_df[desired_cols]

或者用更简洁的Pandas索引操作来获取df2的独有列:

desired_cols = df1.columns.tolist() + df2.columns.difference(df1.columns).tolist()
merged_df = merged_df[desired_cols]

这样就能确保合并后的列完全遵循你想要的原始顺序啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:01:29