从数据帧序列创建多索引数据帧

9 投票
1 回答
6736 浏览
提问于 2025-04-17 23:12

假设我有一个数据框的列表 [df1, df2, df3],每个数据框的样子如下:

> df1 

            median   std
control        0.4   0.2
experiment     0.2   0.3

我该如何创建一个多重索引的数据框,把它们拼接在一起呢?就像这样:

                         df1                 df2                  df3
          control experiment  control experiment  control  experiment
median        0.4        0.2      ...       ...      ...          ...
std           0.2        0.3      ...       ...      ...          ...

1 个回答

19

你可以把数据框(dataframes)作为一个字典来提供(就像在重复的问题中提到的:python/pandas: 如何将两个数据框合并成一个带有层次列索引的框架?),然后字典的键会被使用:

pd.concat({'df1':df1, 'df2':df2, 'df3':df3}, axis=1)

另外一个选择是使用 keys 这个关键字参数:

pd.concat([df1, df2, df3], axis=1, keys=['df1', 'df2', 'df3'])

撰写回答