如何在多级索引数据框中折叠具有相同值的索引?

4
以下代码会给我返回如下的数据框。对于索引级别为0、1和2,只会显示一次。如何在级别为1的情况下实现相同的行为?我想要以下结果:
test = pd.DataFrame([[1,'a',100, 'tom'],[1,'b',200,'ann'], [1,'a',200,'pet'],[2,'a',100,'dig'],[2,'b',200,'goo']], columns=['n', 'alpha','number', 'text'])
test.set_index(['n','alpha']).sort_index(level=0, axis=0)

         number text
n alpha             
1 a         100  tom
  a         200  pet
  b         200  ann
2 a         100  dig
  b         200  goo

我需要的是:

         number text
n alpha             
1 a         100  tom
            200  pet
  b         200  ann
2 a         100  dig
  b         200  goo

只是好奇。故意保留预期输出格式的目的是什么?我只想知道在未来的工作中何时适用。 - ycx
1个回答

3

这个方法可以解决问题,至少在打印时可以。请注意,您将有三级多重索引,这仅用于查看目的,不建议覆盖原始数据帧。

test.assign(d='').set_index('d',append=True).rename_axis(['n','alpha',''])
Out[190]: 
          number text
n alpha              
1 a          100  tom
             200  ann
  b          200  pet
2 a          100  dig
  b          200  goo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接