Как переиндексировать как многоиндексный пандас датафрейм из значения индекса, которое повторяется - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть индекс в кадре данных панд, который повторяет значение индекса.Я хочу переиндексировать как мультииндекс, где сгруппированы повторяющиеся индексы.

Индексация выглядит так:

enter image description here

такЯ хотел бы, чтобы все значения индекса 112335586 были сгруппированы в единое целое в индексе.

Я рассмотрел этот вопрос Создайте кадр данных pandas, повторяя одну строку с новым мультииндексом , но здесь значение можетИндекс be может быть предопределен, но это невозможно, поскольку мой фрейм данных слишком велик, чтобы жестко его кодировать

Я также посмотрел на многоиндексную документацию, но это также предопределяет значение для индекса.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Попробуйте это:

df.reset_index(inplace=True)
df['sub_idx'] = df.groupby('EVENT_ID').cumcount()
df.set_index(['EVENT_ID','sub_idx'], inplace=True)
0 голосов
/ 24 февраля 2019

Я считаю, что вам нужно:

s = pd.Series([1,2,3,4], index=[10,10,20,20])
s.index.name = 'EVENT_ID'
print (s)
EVENT_ID
10    1
10    2
20    3
20    4
dtype: int64

s1 = s.index.to_series()
s2 = s1.groupby(s1).cumcount()
s.index = [s.index, s2]
print (s)
EVENT_ID   
10        0    1
          1    2
20        0    3
          1    4
dtype: int64
...