Создание мультииндекса pandas
Помогите пожалуйста разобраться с мультииндексами. Есть датафрейм
Я хочу объединить данные по ID: df.set_index([df.ID, df.index]), в этом случае ожидаемо получаю
Но мне нужно, чтобы нумерация второго индекса начиналась с нуля для каждого ID.
Так:
Можно было бы сделать так: df.set_index([df.ID, [0, 1, 2, ...]*n), n -- количество ID, но у меня не фиксированное количество элементов для каждого ID.
Помогите, пожалуйста, как можно это сделать.
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Можно создать временную колонку и использовать ее как второй уровень индекса
>>> df['level1'] = df.groupby('ID').cumcount()
>>> df
ID col level1
0 id_1 3 0
1 id_1 4 1
2 id_1 1 2
3 id_2 2 0
4 id_2 3 1
>>> df.set_index(['ID', 'level1'], drop=True)
col
ID level1
id_1 0 3
1 4
2 1
id_2 0 2
1 3
