我要做的是这个...我有时间序列,我想计算滚动平均值,跨越多列的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
我能做的是手动循环......我还可以添加第二列,每行包含多个元素。
但有更好的方法吗?
答案 0 :(得分:0)
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