将 MultiIndex 转换为列 Pandas

Convert MultiIndex into columns Pandas

我想知道如何在 pandas 数据框中执行以下转换。我不知道如何解决这个问题。这个想法是采用索引级别 0 并将其设置为级别 0 列,其余列放入适当的主列

尝试使用 set_indexunstackswaplevel 重塑数据框:

df_out = df.set_index(df.groupby(level=0).cumcount()+1, append=True)\
           .reset_index(level=1)\
           .rename(columns={'level_1':'ident'})\
           .unstack(0)\
           .swaplevel(0,1, axis=1)\
           .sort_index(axis=1)
df_out

输出:

          A                        B                         C                 
       city ident population    city ident population     city ident population
1        NY     1      57578  London     4     543534   Berlin     7    5257537
2        LA     2    8767867   Paris     5      25725   Madrid     8      53755
3  Valencia     3    8767678  Beijin     6     275275  Belfast     9     354354