我有一个 df,它以日期作为索引,并有两列数字和类别,如下所示
number category date 2015-01-02 6.44 a 2015-01-02 100.00 n 2015-01-02 NaN a 2015-01-02 0.19 d 2015-01-02 25.00 m 2015-01-02 1.00 n 2015-01-05 455.00 d 2015-01-05 18.78 m 2015-01-05 9.85 s
我想做的是找到每个“类别”和每个月的“数字”总和。我认为最好的选择是做一个数据透视表,比如
df.pivot(index='date', columns='category', values='number')
但由于日期值不唯一,我收到错误。
有什么想法吗?
最佳答案
我相信你想要pivot_table而不是pivot
注意:由于日期似乎是索引,因此我首先执行重置索引
df.reset_index().pivot_table(index = "date",columns = "category",
values = "number", aggfunc = "sum")
产量
category a d m n s
date
2015-01-02 6.44 0.19 25.00 101 NaN
2015-01-05 NaN 455.00 18.78 NaN 9.85
关于Python pandas 数据透视不是唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29278232/