【问题标题】:How to merge multi-levels colums inside a pandas DataFrame?如何合并熊猫 DataFrame 中的多级列?
【发布时间】:2021-10-27 15:04:26
【问题描述】:

让 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”列合并为一个?期望的结果是:

【问题讨论】:

    标签: python pandas dataframe multi-index


    【解决方案1】:

    它们已经合并。由于列顺序,它以这种方式显示。您可以对索引进行排序以使 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-02
      • 2023-04-10
      • 2018-03-15
      • 2023-04-03
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      相关资源
      最近更新 更多