使用子列融化数据帧

2024-09-28 22:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,其子列位于级别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列具有相同的多表子列

我希望将列转换为行,以便输出应为:

enter image description here


Tags: 数据级别ssdc2c1c3d8d7
1条回答
网友
1楼 · 发布于 2024-09-28 22:31:38

^{}^{}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

相关问题 更多 >