我有一个看起来像的 pandas 数据框
Name Date Value
Sarah 11-01-2015 3
Sarah 11-02-2015 2
Sarah 11-03-2015 27
Bill 11-01-2015 42
Bill 11-02-2015 5
Bill 11-03-2015 15
.... (a couple hundred rows)
如何获得按“姓名”列中的人员分割的这些值的 30 天(或 x 天)滚动总和?理想的输出将具有与当前数据帧相同的列,但每行的值不是该人当天的值,而是过去 30 天的值的累积总和。
我知道我能做到
result = pd.rolling_sum(df, 30)
获取总体滚动总和。但是如何返回一个数据帧,其中滚动总和按“名称”列分组?
最佳答案
使用 grigri group_resample 函数计算出来。
df = group_resample(df,date_column='Date',groupby=group_by,value_column='Value',how='sum',freq='d')
df = df.unstack(group_by).fillna(0)
result = pd.rolling_mean(df,30)
关于python - Pandas:按列分组时获取滚动总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33792332/