Я пытаюсь найти разумно работоспособное решение для следующего преобразования на фрейме данных:
, учитывая этот фрейм данных:
производить:
т.е. дополнить сгруппированный уровень мультииндекса до стандартизированной длины (количество строк)
IsЕсть ли достаточно быстрый способ сделать это на довольно большом многоиндексном фрейме данных (~ несколько тысяч столбцов и ~ миллион строк)?
Вот данный словарь фрейма данных для быстрой ссылки:
d = {'region': {0: 'intro',
1: 'intro',
2: 'intro',
3: 'mid',
4: 'mid',
5: 'start',
6: 'start',
7: 'start',
8: 'title',
9: 'title'},
'feat_index': {0: 9, 1: 3, 2: 0, 3: 7, 4: 8, 5: 2, 6: 4, 7: 1, 8: 6, 9: 5},
'position_in_region': {0: 422,
1: 5834,
2: 8813,
3: 3187,
4: 9407,
5: 997,
6: 3154,
7: 8416,
8: 5408,
9: 8421},
'document_0': {0: 0.39,
1: 0.79,
2: 0.01,
3: 0.55,
4: 0.99,
5: 0.67,
6: 0.61,
7: 0.84,
8: 0.15,
9: 0.23},
'document_1': {0: 0.8,
1: 0.06,
2: 0.92,
3: 0.74,
4: 0.06,
5: 0.96,
6: 0.57,
7: 0.19,
8: 0.29,
9: 0.24},
'document_2': {0: 0.81,
1: 0.15,
2: 0.19,
3: 0.17,
4: 0.11,
5: 0.34,
6: 0.8,
7: 0.03,
8: 0.67,
9: 0.46}}
df = pd.DataFrame(d).set_index(['region', 'feat_index', 'position_in_region'])