См. Пример ниже.
С учетом того, что для фрейма данных, индекс которого имеет повторяющиеся значения, можно получить новый фрейм данных с иерархическим индексом, первый уровень которого является исходным индексом, а второй уровень - 0, 1, 2, ..., n?
Пример:
>>> 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