Поворот и мультииндексирование

Как преобразовать фрейм данных pandas в следующем формате:

Index   Code   Year   Week   Count
    0   AE    2005     1      0
    1   AE    2005     2      0
    2   AE    2005     3      2
    3   AE    2005     4      0
    4   AE    2005     5      0
    .....
    51  AE    2005     52     1
    52  AE    2006     1      3
    53  AE    2006     2      0
    54  AE    2006     3      1
    55  AE    2006     4      0
    56  AE    2006     5      0
    .....
    102  AE    2006     52     1
    103  AU    2005     1      0
    104  AU    2005     2      0
    105  AU    2005     3      2
    106  AU    2005     4      0
    107  AU    2005     5      0
    .....
    153  AU    2005     52     1
    154  AU    2006     1      3
    155  AU    2006     2      0
    156  AU    2006     3      1
    157  AU    2006     4      0
    158  AU    2006     5      0
    .....
    203  AU    2006     52     1

Есть несколько кодов, несколько лет, записи 52 недели для каждого года и значение счета для каждой недели.

Требуемый формат:

      Year      2005                  2006
      Week      1     2    3  ... 52  1     2    3 ... 
Code
AE              0     0    2  ... 0   0     1    2 ... 
AU
...
ZC

Я пробовал искать здесь разные решения, а также пробовал pivot, pivot_table, комбинации stack и unstack, но не смог найти решение :(.

@Wen, я видел этот пост, и мне кажется, что ни один из сценариев не соответствует моему случаю. Кейсы поворота там включают агрегаты, которые я не могу агрегировать.

Kam 09.05.2018 04:12

Вы хотите, чтобы я снова его открыл?

BENY 09.05.2018 04:14

Это было бы очень признательно!

Kam 09.05.2018 04:18
0
3
35
1

Ответы 1

Можно делать с set_index и stack

df.set_index(['Code','Year','Week']).Count.unstack([1,2])
Year 2005            
Week    1  2  3  4  5
Code                 
AE      0  0  2  0  0

Спасибо, Вэнь, это дает мне следующую ошибку AttributeError: объект DataFrame не имеет атрибута Count

Kam 09.05.2018 04:29

@Kam проверьте свои столбцы, содержат ли они пробелы или нет

BENY 09.05.2018 04:31

не уверен, о чем вы спрашиваете? Вы имеете в виду пробелы в названиях столбцов? Ответ - нет. Столбец кода является буквенно-цифровым, все остальные столбцы - целочисленными значениями.

Kam 09.05.2018 04:59

@Kam, можешь ли ты попробовать мой код с образцом фрейма данных, проверить, работает он или нет?

BENY 09.05.2018 05:00

Я обновил образец фрейма данных, чтобы лучше объяснить, что я пытаюсь сделать.

Kam 09.05.2018 06:15

Другие вопросы по теме