Pandas multiIndex:为每个现有索引添加新索引

Pandas multiIndex: add new indexes for each existing index

我有一个如下所示的数据框:

    ID  Type
0   a1   y
1   a1   y
2   a2   y
3   a2   n
4   a3   n

我想重新索引它,使其看起来像这样:

ID  Subindex Type
a1   1        y
     2        y
a2   1        y
     2        n
a3   1        n

pandas 中的任何命令都可以做到这一点?非常感谢!

要对每组中的项目进行编号,请使用 cumcount:

import pandas as pd
df = pd.DataFrame({'ID': ['a1', 'a1', 'a2', 'a2', 'a3'], 
                   'Type': ['y', 'y', 'y', 'n', 'n']})
df['Subindex'] = df.groupby('ID').cumcount()+1
print(df)

产量

   ID Type  Subindex
0  a1    y         1
1  a1    y         2
2  a2    y         1
3  a2    n         2
4  a3    n         1