我有以下代码可以按列滚动大小为 3 的窗口(即向下,如图中绿色所示)。但是,我希望窗口按行滚动(即如图中蓝色所示向右滚动)。
window_size = 3
numbers_series = X #X is my dataframe
windows = numbers_series.rolling(window_size)
moving_averages = windows.mean()
moving_averages_list = moving_averages.values.tolist()
without_nans = moving_averages[window_size - 1:]
print(without_nans)
按列输出是:但这不是我想要的 - 我希望它能够按行给出窗口的平均值。我该如何实现这一目标?
编辑:
编辑上述代码以在滚动函数中包含 axis=1 后,这是我得到的输出:
我不确定上面 520.67、635.33 等的值是如何计算的。我期待以下(第一个单元格:788 + 43 + 345)/3 = 392,等等...):
最佳答案
pandas.DataFrame.rolling 有一个轴参数。
DataFrame.rolling
DataFrame.rolling(
window,
min_periods=None,
center=False,
win_type=None,
on=None,
axis=0, # Set axis to 1.
closed=None)
关于python - 在 Python 中,如何使窗口在行而不是列上滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68135383/