我有一个带有非唯一索引的pandas DataFrame:
index = [1,1,1,1,2,2,2,3]
df = pd.DataFrame(data = {'col1': [1,3,7,6,2,4,3,4]}, index=index)
df
Out[12]:
col1
1 1
1 3
1 7
1 6
2 2
2 4
2 3
3 4
我希望将其转换为唯一的MultiIndex并保留顺序,如下所示:
col1
Ind2
1 0 1
1 3
2 7
3 6
2 0 2
1 4
2 3
3 0 4
我想大熊猫会有类似这样的功能,但却找不到任何东西
答案 0 :(得分:5)
您可以对索引执行groupby.cumcount
,然后使用set_index
将其作为新级别附加到索引:
df = df.set_index(df.groupby(level=0).cumcount(), append=True)
结果输出:
col1
1 0 1
1 3
2 7
3 6
2 0 2
1 4
2 3
3 0 4