如何在熊猫中使用自定义聚合功能获取cumsum

时间:2019-04-20 09:55:43

标签: python pandas group-by

我有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

1 个答案:

答案 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