Учитывая следующий фрейм данных:
test_df = pd.DataFrame({'date': ['2020-01-01', '2020-01-01', '2020-01-01', '2020-01-02', '2020-01-02', '2020-01-02'], 'A': [1,2,3,4,5,6], 'B': ['a', 'b', 'c', 'd', 'e', 'f'], 'C': ['aa', 'bb', 'cc', 'dd', 'ee', 'ff'], 'val': [100, 200, 300, 400, 500, 600]})
test_df['date'] = pd.to_datetime(test_df['date'])
Я формирую следующую сводную таблицу (причина для этого выходит за рамки этого вопроса.):
test_pivot_table = test_df.pivot_table(index='date', columns=['A', 'B', 'C'], values='val')
Предположим, что после Я выполняю некоторые операции, такие как повторная выборка индекса даты и времени, и хочу вернуть его в исходную табличную форму. Какой самый эффективный способ преобразовать его обратно?
Текущий способ, которым я делаю это прямо сейчас:
test_pivot_table.stack().stack().stack().to_frame('val').reset_index()
Однако для больших фреймов данных тройные операции stack()
медленно и очень интенсивно использует память.