我有DataFrame
,如下所述
df = pd.DataFrame({'year':[2014,2017,2014,2016,2016],'prod':['A','B','C','D','E']})
我可以用它
df.groupby('year').count().cumsum() ##
prod
year
2014 2
2016 4
2017 5
我想仅使用自定义功能来获得此结果,其中可以传递custom_func
df.groupby('year').agg({'year':custom_func})
到目前为止,我已经尝试过
def count_sum(series):
se = pd.Series(np.ones(series.shape[0]))
return se.sum()
df.groupby('year').agg({'year':count_sum}) ## it is just returning as 'count' function
答案 0 :(得分:0)
函数cumsum
用于聚合的输出-这里是一列DataFrame
,因此有必要将其链接在agg
之后:
print (df.groupby('year').agg({'year':count_sum}))
year
year
2014 2
2016 2
2017 1
df1 = df.groupby('year').agg({'year':count_sum}).cumsum()
print (df1)
year
year
2014 2
2016 4
2017 5