簡體   English   中英

滾動意味着與熊貓的定制窗口

[英]Rolling mean with customized window with Pandas

有沒有辦法自定義rolling_mean函數的窗口?

data
1
2
3
4
5
6
7
8

假設窗口設置為2,即計算觀察前后的2個數據點的平均值。 說第3次觀察。 在這種情況下,我們將有(1+2+3+4+5)/5 = 3 等等等等。

使用向前(或向后)窗口計算通常的滾動平均值,然后使用shift方法根據需要重新定位它。

data_mean = pd.rolling_mean(data, window=5).shift(-2)

如果要在觀察前后平均超過2個數據點(總共5個數據點),則使window=5

例如,

import pandas as pd

data = pd.Series(range(1, 9))

data_mean = pd.rolling_mean(data, window=5).shift(-2)
print(data_mean)

產量

0   NaN
1   NaN
2     3
3     4
4     5
5     6
6   NaN
7   NaN
dtype: float64

正如kadee指出的那樣 ,如果你希望將滾動平均值居中,那么就使用

pd.rolling_mean(data, window=5, center=True)

對於更新版本的Pandas(請參閱0.23.4文檔https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rolling.html ),您不再擁有rolling_mean。 相反,你會使用

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)

對於您的示例,它將是:

df.rolling(5,center=True).mean()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM