滚动平均熊猫分组超过一列

时间:2021-03-24 11:57:27

标签: 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 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 做一个滚动平均值(最后 3 个周期),nom

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()。

1 个答案:

答案 0 :(得分:1)

我找到了解决办法: analytics.groupby(['glnumber','nom','Year'])['amount'].transform(lambda s: s.rolling(3, min_periods=1).mean())