Python中带有inf值的滚动平均值

Python中带有inf值的滚动平均值,python,pandas,Python,Pandas,我试图匹配最终输出,计算计数的移动平均数(3) 预期产量 分类名称计数MA3 0水果苹果 1个水果苹果 2个水果苹果 三种水果苹果 4种水果苹果5.0 5.0 5种水果苹果6.0 6.5 6种水果苹果7.0 6.0 7种水果苹果8.0 7.0 8蔬菜花椰菜10.0 NaN 9蔬菜花椰菜11.0 NaN 10蔬菜花椰菜12.0 11.0 但是python.rolling代码没有考虑inf值,这方面有什么改进吗 df['MA3'] = df.groupby(['Classification', '

我试图匹配最终输出,计算计数的移动平均数(3)

预期产量

分类名称计数MA3
0水果苹果
1个水果苹果
2个水果苹果
三种水果苹果
4种水果苹果5.0 5.0
5种水果苹果6.0 6.5
6种水果苹果7.0 6.0
7种水果苹果8.0 7.0
8蔬菜花椰菜10.0 NaN
9蔬菜花椰菜11.0 NaN
10蔬菜花椰菜12.0 11.0
但是python.rolling代码没有考虑inf值,这方面有什么改进吗

df['MA3'] = df.groupby(['Classification', 'Name'])['Count'].transform(lambda x: x.rolling(3,3).mean())
电流输出

分类名称计数MA3
0水果苹果
1个水果苹果
2个水果苹果
三种水果苹果
4种水果苹果5.0 NaN
5个水果苹果6.0 NaN
6种水果苹果7.0 6.0
7种水果苹果8.0 7.0
8蔬菜花椰菜10.0 NaN
9蔬菜花椰菜11.0 NaN
10蔬菜花椰菜12.0 11.0

创建一个系列S,其中包含将
inf
替换为
nan
的计算,并将最小周期设置为1。然后,为需要修改的行创建掩码,即位于
inf

df['MA3']=df.groupby(['Classification','Name'])['Count'].transform(lambda x:x.replace(np.inf,np.nan).滚动(3,最小周期=3.mean())
S=df.groupby(['Classification','Name'])['Count'].transform(lambda x:x.replace(np.inf,np.nan).滚动(3,最小周期=1.mean())
mask=df['Count'].lt(np.inf)和df['MA3'].isnull()&(df['Count'].shift(1.eq(np.inf)| df['Count'].shift(2.eq(np.inf))
df.loc[mask,'MA3']=S.loc[mask]

Hi Jing。好吧,如果
inf
确实是包含无穷大的移动平均数的正确值,那么您希望输出是什么。