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

使用df.add()合并数据后列顺序改变,如何控制或调整?

解决DataFrame.add()合并后列排序问题

使用.add()合并列名一致的多个DataFrame时,列会默认按字母升序排列——这是因为方法内部对齐数据时会自动排序列名。你有两种处理方式:

方式一:合并后手动指定列顺序

这是你已经想到的方案,直接用原始列的顺序重新索引汇总DataFrame,简单高效:

new_df = sum_df[['C', 'A', 'D', 'B']]

方式二:合并过程中保留原始列顺序

如果不想事后调整,可以换用pd.concat先合并所有DataFrame再求和,concat默认会保留原始列的顺序:

# 假设你的DataFrame都存放在dfs列表中
dfs = [df1, df2, df3]
# 合并后按索引分组求和
sum_df = pd.concat(dfs).groupby(level=0).sum()

或者在循环使用.add()时,每次操作后都强制保留原始列顺序:

original_cols = df1.columns  # 从第一个DataFrame获取原始列顺序
sum_df = df1.copy()
for df in dfs[1:]:
    sum_df = sum_df.add(df, fill_value=0)[original_cols]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:17:03