Pandas 按多个列分组的滚动平均值

Pandas 按多个列分组的滚动平均值,pandas,dataframe,Pandas,Dataframe,这是我的数据框架分析:glnumber,nom,Year,YerarMonth,nom,amount 4020 Honoraires de consultation,,2018,201809,234294.31000 4020 Honoraires de consultation,,2018,201810,166337.95000 4020 Honoraires de consultation,,2018,201811,250590.67000 4020 Honoraires de consul

这是我的数据框架分析:glnumber,nom,Year,YerarMonth,nom,amount

4020 Honoraires de consultation,,2018,201809,234294.31000
4020 Honoraires de consultation,,2018,201810,166337.95000
4020 Honoraires de consultation,,2018,201811,250590.67000
4020 Honoraires de consultation,,2018,201812,92206.82000
4020 Honoraires de consultation,,2019,201901,196868.71000
4020 Honoraires de consultation,,2019,201902,148145.20000
4020 Honoraires de consultation,,2019,201903,110973.24000
4020 Honoraires de consultation,,2019,201904,184858.18000
4020 Honoraires de consultation,,2019,201905,119166.87000
4020 Honoraires de consultation,,2019,201906,10428.10000
4020 Honoraires de consultation,,2019,201907,19927.05000
4020 Honoraires de consultation,,2019,201908,-22677.79000
4020 Honoraires de consultation,,2019,201909,-8560.00000
4020 Honoraires de consultation,,2020,202004,-26.25000
4020 Honoraires de consultation,,2020,202007,-0.02000
4020 Honoraires de consultation,,2021,202101,-105.00000
4020 Honoraires de consultation,,2021,202103,104.99000
4020 Honoraires de consultation,Aclient1,2020,202007,9000.00000
4020 Honoraires de consultation,Aclient1,2020,202008,14040.00000
4020 Honoraires de consultation,Aclient1,2020,202010,31185.00000
4020 Honoraires de consultation,Aclient1,2020,202011,14310.00000
4020 Honoraires de consultation,Aclient1,2020,202012,11160.00000
4020 Honoraires de consultation,Aclient1,2021,202101,14490.00000
4020 Honoraires de consultation,Aclient1,2021,202102,14670.00000
4020 Honoraires de consultation,Aclient2,2020,202003,21045.00000
4020 Honoraires de consultation,Aclient2,2020,202004,13340.00000
4020 Honoraires de consultation,Aclient2C,2020,202006,15640.00000
4020 Honoraires de consultation,Aclient2,2020,202008,54165.00000
4020 Honoraires de consultation,Aclient2,2020,202010,51750.00000
4020 Honoraires de consultation,Aclient2,2020,202011,23000.00000
4020 Honoraires de consultation,Aclient2,2020,202012,19550.00000
4020 Honoraires de consultation,Aclient2,2021,202101,21850.00000
4020 Honoraires de consultation,Aclient2,2021,202102,23000.00000
4020 Honoraires de consultation,Aclient3,2020,202001,937.50000
4020 Honoraires de consultation,Aclient2,2020,202003,437.50000
我试图对每个glnumber,nom做一个滚动平均值(最后3个周期)

analytics['mean'] = np.where((((analytics.glnumber.isnull()) | (analytics.glnumber.shift(1).isnull()) | (analytics.glnumber.shift(2).isnull()) |(analytics.glnumber.shift(3).isnull()) |
                               (analytics.glnumber == analytics.glnumber.shift(1) == analytics.glnumber.shift(2) == analytics.glnumber.shift(3))) &
                       ((analytics.nom.isnull()) | (analytics.nom.shift(1).isnull()) | (analytics.nom == analytics.nom.shift(1) == analytics.nom.shift(2) == analytics.nom.shift(3) ))), analytics.amount.rolling(3).mean(), 0)
我犯了这个错误 ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all() analytics.groupby(['glnumber','nom','Year'])['amount'].transform(lambda s:s.rolling(3,min_periods=1.mean())