参见下面的示例。
给定索引具有重复值的数据,如何获得具有层次索引(其第一级为原始索引,第二级为0、1、2、…、n )的新数据values?
示例:
>>> df
0 1
a 2 4
a 4 6
b 7 8
b 2 4
c 3 7
>>> df2 = df.some_operation()
>>> df2
0 1
a 0 2 4
1 4 6
b 0 7 8
1 2 4
c 0 3 7发布于 2018-11-06 02:07:39
您可以使用cumcount
df.assign(level2=df.groupby(level=0).cumcount()).set_index('level2',append=True)
Out[366]:
0 1
level2
a 0 2 4
1 4 6
b 0 7 8
1 2 4
c 0 3 7发布于 2018-11-06 02:32:07
可以做假的方式(完全不推荐,不要用这个):
>>> df.index=[v if i%2 else '' for i,v in enumerate(df.index)]
>>> df.insert(0,'',([0,1]*3)[:-1])
>>> df
0 1
0 2 4
a 1 4 6
0 7 8
b 1 2 4
0 3 7
>>> 更改索引名并创建列名为'' (空字符串)的列。
https://stackoverflow.com/questions/53164816
复制相似问题