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

如何在Pandas中合并同索引列的三个DataFrame并调整多级索引层级

问题:合并Pandas DataFrame并按原索引分组展示多级索引内容

需求描述

将三个索引与列名完全一致的Pandas DataFrame合并,生成保留原索引与列的最终表格,使同一索引对应的各行按DataFrame分组依次展示(需使用多级索引)。

尝试代码

import pandas as pd

d1 = {'P1-6': [53, 141, 51], 'P1-12': [64, 127, 56], 'P1-22': [57, 140, 56]}
df1 = pd.DataFrame(data=d1, index=['hAT|1', 'hAT|2', 'hAT|3'])

d2 = {'P1-6': [9, 21, 80], 'P1-12': [14, 36, 70], 'P1-22': [16, 31, 68]}
df2 = pd.DataFrame(data=d2, index=['hAT|1', 'hAT|2', 'hAT|3'])

d_sum = {'P1-6': [62, 162, 131], 'P1-12': [78, 163, 126], 'P1-22': [73, 171, 124]}
df_sum = pd.DataFrame(data=d_sum, index=['hAT|1', 'hAT|2', 'hAT|3'])

final_table = pd.concat([df1, df2, df_sum], keys=['df1', 'df2', 'df_sum'])

当前输出

P1-6  P1-12  P1-22
df1    hAT|1    53     64     57
       hAT|2   141    127    140
       hAT|3    51     56     56
df2    hAT|1     9     14     16
       hAT|2    21     36     31
       hAT|3    80     70     68
df_sum hAT|1    62     78     73
       hAT|2   162    163    171
       hAT|3   131    126    124

期望输出

P1-6  P1-12  P1-22
hAT|1    df1    53     64     57
         df2     9     14     16
      df_sum    62     78     73
hAT|2    df1   141    127    140
         df2    21     36     31
      df_sum   162    163    171
hAT|3    df1    51     56     56
         df2    80     70     68
      df_sum   131    126    124

解决方案

完全可以实现,只需调整多级索引的层级顺序并重新排序即可,以下是两种简单方法:

方法1:合并后交换索引层级并排序

在原代码基础上,对合并后的结果执行索引层级交换和排序:

final_table = pd.concat([df1, df2, df_sum], keys=['df1', 'df2', 'df_sum'])
# 交换多级索引的两个层级,再按新索引顺序排序
final_table = final_table.swaplevel(0, 1).sort_index()

方法2:通过添加标识列构建多级索引

先给每个DataFrame添加来源标识列,再合并后设置多级索引并调整顺序:

# 为每个DataFrame添加来源标识
df1['source'] = 'df1'
df2['source'] = 'df2'
df_sum['source'] = 'df_sum'

# 合并后设置多级索引,再交换层级并排序
combined = pd.concat([df1, df2, df_sum])
final_table = combined.set_index(['source'], append=True).swaplevel(0, 1).sort_index()

执行任意一种方法后,都能得到期望的输出格式:同一原索引下按DataFrame分组展示数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:40:13