【发布时间】:2020-03-06 23:07:29
【问题描述】:
相关:pandas dataframe rolling window with groupby
我有一些DataFrame:
df = pd.DataFrame({'type':[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1],
'rank':[0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4],
'score':[5,8,10,12,4,9,13,23,42,4,9,10,8,12,48,9]})
我想添加一个新列,其中包括每 4 个ranks 的每个type 的scores 的滚动平均值。
这样的东西非常接近我想要的:
f = lambda x: x.rolling(4, min_periods=4).mean()
df['rolling'] = df.groupby('type')['score'].apply(f)
但我想从每个type 中的第一个rank 开始平均。最后 3 个 ranks 应该返回 NaN,例如:
【问题讨论】: