首页 > 解决方案 > 使用子列熔化数据框

问题描述

我有一个带有 1 级子列的数据框:

A        B        C             d          
             1    2    3    1    2    3
ssd    usg   c1   c2   c3   d7   d8   d9
ssd1  usg1  c11  c22  c33  d77  d88  d99

C 和 D 列有多个相同的子列

我想要列到行,这样输出应该是:

在此处输入图像描述

标签: pythonpython-3.xpandasdata-sciencetranspose

解决方案


DataFrame.stackDataFrame.reset_index和一起使用rename

print (df.index)
MultiIndex([( 'ssd',  'usg'),
            ('ssd1', 'usg1')],
           names=['A', 'B'])

print (df.columns)
MultiIndex([('C', '1'),
            ('C', '2'),
            ('C', '3'),
            ('d', '1'),
            ('d', '2'),
            ('d', '3')],
           )

df = df.stack(0).reset_index().rename(columns={'level_2':'new'})
print (df)
      A     B new    1    2    3
0   ssd   usg   C   c1   c2   c3
1   ssd   usg   d   d7   d8   d9
2  ssd1  usg1   C  c11  c22  c33
3  ssd1  usg1   d  d77  d88  d99

推荐阅读