如何在 pandas DataFrame 中合并多级列?

How to merge multi-levels colums inside a pandas DataFrame?

设 DF 为多索引 DataFrame,构造如下:

df_A = {}
df_A['origin'] = pd.DataFrame({'a': [11,12,13], 'b': [True, True, False]})
df_A = pd.concat(df_A, axis=1)

df_B = {}
df_B['destination'] = pd.DataFrame({'c': [11,12,13], 'd': [True, True, False]})
df_B = pd.concat(df_B, axis=1)
df_B

df_C = {}
df_C['origin'] = pd.DataFrame({'e': [11,12,13], 'f': [True, True, False]})
df_C = pd.concat(df_C, axis=1)

DF = df_A.join(df_B.join(df_C))

我们看到生成的 DataFrame 有一个重复的列级别(即“origin”):

问题:如何将“origin”列合并为一个列?期望的结果是:

它们已经合并。由于列顺序,它以这种方式显示。您可以对索引进行排序,使 origin 列彼此相邻:

DF.sort_index(axis=1, level=0, ascending=False)

  origin                destination    
       f   e      b   a           d   c
0   True  11   True  11        True  11
1   True  12   True  12        True  12
2  False  13  False  13       False  13