Python 减少数据帧中的冗余索引

Python 减少数据帧中的冗余索引,python,pandas,Python,Pandas,我有一个按药物和剂型索引的数据框q。我注意到,当数据帧未排序时,数据帧在两个不同的位置显示相同的索引plavix。我可以通过在q的末尾添加.sort\u index()来解决这个问题(请参见输出1)。我有两个问题:(1)是否有更好的方法实现产出1;以及(2)我如何实现下面的输出2。谢谢 q = pd.DataFrame(np.array([1,2,3,4]), index=[pd.Series(['plavix', 'warfarin', 'plavix',

我有一个按药物和剂型索引的数据框
q
。我注意到,当数据帧未排序时,数据帧在两个不同的位置显示相同的索引
plavix
。我可以通过在
q
的末尾添加
.sort\u index()
来解决这个问题(请参见输出1)。我有两个问题:(1)是否有更好的方法实现产出1;以及(2)我如何实现下面的输出2。谢谢

q = pd.DataFrame(np.array([1,2,3,4]), index=[pd.Series(['plavix', 'warfarin', 
                 'plavix', 'plavix'], index=[0,1,2,3]), pd.Series(['tab', 
                 'inj', 'cap', 'tab'], index=[0,1,2,3])], columns=['app_num'])
输出:

                app_num
plavix   tab        1
warfarin inj        2
plavix   cap        3
         tab        4
产出1:

                app_num
warfarin inj        2
plavix   cap        3
         tab        1
         tab        4
产出2:

                app_num
warfarin inj        2
plavix   cap        3
         tab        1
                    4

对于输出1,您需要一个简单的排序索引

q.sort_index(level=0, ascending=False)

              app_num
warfarin inj        2
plavix   tab        1
         tab        4
         cap        3
对于输出2,您需要在对索引排序之前附加一个额外的级别

q.set_index(
    q.groupby(level=[0, 1]).cumcount(), append=True
).sort_index(level=[0, 1], ascending=[False, True])

                app_num
warfarin inj 0        2
plavix   cap 0        3
         tab 0        1
             1        4

对于输出1,您需要一个简单的排序索引

q.sort_index(level=0, ascending=False)

              app_num
warfarin inj        2
plavix   tab        1
         tab        4
         cap        3
对于输出2,您需要在对索引排序之前附加一个额外的级别

q.set_index(
    q.groupby(level=[0, 1]).cumcount(), append=True
).sort_index(level=[0, 1], ascending=[False, True])

                app_num
warfarin inj 0        2
plavix   cap 0        3
         tab 0        1
             1        4

HACK
q.set\u index(np.array(“”)。重复(len(q)),append=True。sort\u index()
工作得很好,谢谢!HACK
q.set\u index(np.array(“”)。重复(len(q)),append=True。sort\u index()
工作得很好,谢谢!