此数据帧:
df = pd.DataFrame({'delivery_date' : ['2018-09-07' ,'2018-09-07','2018-09-08','2018-09-09','2018-09-10'],
'user' : ['user1','user1','user2','user3','user3'],
'number_of_papers' : [3,4,3,2,4]})
我想按delivery_date
和user
分组。其中:
count
次一个user
已经在一天内交付了一些东西李>number_of_papers
的sum
我使用了.agg
,但我认为它不适用于这里,因为count
和sum
是关于不同的列的
df.groupby(['delivery_date','user'])['delivery_date'].agg(['count','sum']).sort_index(level=[0,1], ascending=[False,True]).reset_index(name ='Counts')
Error TypeError: reduction operation 'sum' not allowed for this dtype
总和应该是number_of_papers
。我不知道在groupby的什么地方写这个
示例:
除sum
部分外,这将执行所有操作:
a.groupby(['delivery_date','user'])['delivery_date'].count().sort_index(level=[0,1], ascending=[False,True]).reset_index(name ='counts')
提供:
delivery_date user counts
0 2018-09-10 user3 1
1 2018-09-09 user3 1
2 2018-09-08 user2 1
3 2018-09-07 user1 2
我只想在这个表中做sum
的number_of_papers
,作为一个名为sum
的新列
使用^{} 函数中的字典进行与列相关的特定计算,然后
rename
列和reset_index
:你可以这样使用agg
相关问题 更多 >
编程相关推荐