Агрегация панд с помощью пивота - PullRequest
0 голосов
/ 11 октября 2019

Фрейм данных выглядит следующим образом:

enter image description here

Я хочу преобразовать его следующим образом:

enter image description here

Я использую следующий код:

df2_SEX_AGE=df1.pivot(index='codprg', columns=['SEX','ETA'], values='counts')

, но возникает следующая ошибка KeyError: 'Level SEX not found'

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Это должно отсортировать вас:

(df1.assign(p=df['SEX'].astype(str) + df['ETA'].astype(str))
    .pivot(index='codprg', columns='p', values='counts'))
0 голосов
/ 11 октября 2019

Для преобразования MultiIndex в Index используйте понимание списка с pivot_table во избежание ошибки:

Индекс содержит повторяющиеся записи, не может изменить форму


df2_SEX_AGE=df1.pivot_table(index='codprg', 
                            columns=['SEX','ETA'], 
                            values='counts',  
                            aggfunc='sum')
df2_SEX_AGE.columns = [f'{a}{b}' for a, b in df2_SEX_AGE.columns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...