создание сводной таблицы завершается неудачно на фрейме данных pandas - PullRequest
0 голосов
/ 09 мая 2018

У меня есть фрейм данных со столбцами year, month, source, ... существует несколько записей на (год, месяц, источник), и мне нужно создать сводную таблицу с индексом (год, month) и source - это столбец, а количество записей за (year, month, source) - это значения. У меня есть следующий код

df.privot_table(index = ['year','month'], columns = ['source'], aggfunc = np.size, fill_value = 0)

вот как выглядят мои данные

2001,02,A, ....
2001,02,A,....
2001,03,B,....
2001,03,B,....
2001,03,B,....

и вот как я хочу, чтобы данные были

           A  B
2001, 02,  2, 0
2001, 03,  0, 3

но выдает следующее сообщение об ошибке

 Reindexing only valid with uniquely values index objects

Что не так?

1 Ответ

0 голосов
/ 10 мая 2018

Ваш желаемый результат может быть достигнут с помощью aggfunc=len.

import pandas as pd

df = pd.DataFrame([[2001, '02', 'A'], [2001, '02', 'A'], [2001, '03', 'B'],
                   [2001, '03', 'B'], [2001, '03', 'B']],
                  columns=['Year', 'Month', 'Source'])

res = df.pivot_table(index=['Year', 'Month'], columns='Source',
                     aggfunc=len, fill_value=0)

print(res)

Source      A  B
Year Month      
2001 02     2  0
     03     0  3
...