在pandas数据帧上创建pivot_table失败

时间:2018-05-09 19:47:32

标签: python pandas pivot-table

我有一个包含yearmonthsource列的数据框,...每个(年,月,来源)有多个记录,我需要生成一个数据透视表其索引为(年,月),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 :(得分:0)

使用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