带条件的数据帧上的Python聚合和

带条件的数据帧上的Python聚合和,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个如下所示的数据帧: stuff datetime value A 1/1/2019 3 A 1/2/2019 4 A 1/3/2019 5 A 1/4/2019 6 ... stuff avg_3 avg_4 avg_5 A 3.4 4.5 5.5 B 2.3 4.2 6.1 我想创建一个新的数据帧,如下所示: stuff datetime value A 1/1/2019 3 A 1/2/2019 4 A 1/3/2019 5 A 1/4/2019 6 ... stuff avg

我有一个如下所示的数据帧:

stuff datetime value
A 1/1/2019 3
A 1/2/2019 4
A 1/3/2019 5
A 1/4/2019 6
...
stuff avg_3 avg_4 avg_5
A 3.4 4.5 5.5
B 2.3 4.2 6.1
我想创建一个新的数据帧,如下所示:

stuff datetime value
A 1/1/2019 3
A 1/2/2019 4
A 1/3/2019 5
A 1/4/2019 6
...
stuff avg_3 avg_4 avg_5
A 3.4 4.5 5.5
B 2.3 4.2 6.1
其中,avg_3是从今天开始的最后3天的平均值,avg_4是从今天开始的最后4天的平均值,等等,按内容分组

我该怎么做

我当前的代码:

df.groupby('stuff').apply(lambda x: pd.Series(dict(
    day_3=(x.datetime > datetime.now() - timedelta(days = 3)).mean(),
    day_7=(x.datetime > datetime.now() -timedelta(days = 7)).mean())))

提前感谢在
groupby
之前创建布尔掩码,使用
平均值添加新列by和
groupby

m1 = df.datetime >  pd.datetime.now() - pd.Timedelta(days = 3)
m2 = df.datetime >  pd.datetime.now() - pd.Timedelta(days = 7)

df = df.assign(day_3=m1, day_7=m2).groupby('stuff')['day_3','day_7'].mean()

这不就是第3天和第7天列的平均值吗?我是否需要指定我希望它应用于“值”列?如果删除
['day\u 3','day\u 7']
在groupby it count之后,则@SuperString也表示
列。因此,可能的解决方案应该是删除此列afftwt assign,如
df=df.assign(第3天=m1,第7天=m2)。drop('value',axis=1)。groupby('stuff')。mean()