Как повернуть фрейм данных без изменения индекса и вернуть все столбцы из предыдущей операции - PullRequest
0 голосов
/ 08 мая 2020

У меня есть таблица:

enter image description here

Когда я пытаюсь развернуть python:

df.pivot(columns = 'Type', values = 'Value')

он возвращает только столбцы из столбца Type со значениями, но столбцы Col1-Col5 не отображаются в моем фрейме данных

В Power Query это достигается очень просто, я просто выбираю столбец, который хочу развернуть, и значения для этого столбца: enter image description here

И после этой операции я получаю следующий результат:

enter image description here

Как добиться того же результата с помощью pd .pivot?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Вы должны иметь возможность использовать pivot_table () , чтобы сделать это, те же шаги, что указаны в этом ответе

res = df.pivot_table(values='Value', index=['Col1','Col2','Col3','Col4','Col5'], columns='Type')

Это создает мультииндекс фрейм данных, который затем можно сгладить:

res.reset_index(inplace=True)
res.columns.name = None
0 голосов
/ 09 мая 2020

Ни в коем случае не используя pd.pivot. Для этого случая есть функция pd.pivot_table:

table = pd.pivot_table(df, values='Value', index=['Col1','Col2','Col3','Col4','Col5'], 
columns=['Type'], aggfunc=np.sum)
...