[英]Pandas: Calculate the average over all of the columns for n rolling rows at a time
我正在尝试做的是...我有时间序列,我想计算多列中n行的滚动平均值。 我最初要做的是制作另一列,每列包含平均值,然后对n行进行标准滚动平均值计算。 但是,当我在某些列中没有值时,就无法进行计算。
例:
Col1 | Col2 | Col3 | Avg
10 | 20 | | 15
| 10 | | 10
10 | 15 | 20 | 15
平均滚动平均值: 13.33
应该是: 14.16
这是为我工作的示例,其中包含所有数字...
Col1 | Col2 | Col3 | Avg
10 | 20 | 15 | 15
10 | 10 | 10 | 10
10 | 15 | 20 | 15
平均滚动平均值: 13.33
应该是: 13.33
我可以做的是手动循环...我还可以添加第二列,该列将在每行中包含元素数量。
但是有更好的方法吗?
np.nanmean
将对多维数组中的所有内容np.nanmean
平均。
np.nanmean(df.values)
14.166666666666666
滚动3个周期使用此方法,您可以执行此操作
pd.Series({df.index[i]: np.nanmean(df.iloc[i-2:i+1].values) for i in range(2, len(df))})
2 14.166667
dtype: float64
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.