我的分组数据如下:
deviceid time total_sent
022009f075929be71975ce70db19cd47780b112f 1980-January 36 4
52 1
94 1
211 1
278 1
318 2
370 1
426 1
430 1
435 1
560 1
674 1
797 1
813 4
816 1
ff5b22df4ab9207bb6709cddef6d95c655565578 2013-August 11308408 4
12075616 1
17933654 1
22754808 12
22754987 1
22755166 3
22755345 4
22788586 4
22788765 2
22788944 2
22791830 1
22792546 1
22796843 1
22797201 2
22797380 2
最后一列代表计数。我使用表达式
获得了这个分组表示data1.groupby(['deviceid', 'time', 'total_sent'])
如何汇总每月的总数?
deviceid time sum
022009f075929be71975ce70db19cd47780b112f 1980-January 6210
ff5b22df4ab9207bb6709cddef6d95c655565578 2013-August XXXX
答案 0 :(得分:1)
由于total_sent
列要求和,因此它不应该在groupby键中。您可以尝试以下方法:
data1.groupby(['deviceid', 'time']).agg({'total_sent': sum})
将对每个组的total_sent
列求和,并按deviceid
和time
编制索引。