用法:
Series.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None, method='single')
提供滾動窗口計算。
- window:int、offset 或 BaseIndexer 子類
移動窗口的大小。
如果是整數,則為每個窗口使用的固定數量的觀察值。
如果是偏移量,則為每個窗口的時間段。每個窗口的大小都將根據time-period 中包含的觀察結果進行調整。這僅對 datetimelike 索引有效。要了解有關偏移和頻率字符串的更多信息,請參閱此鏈接。
如果是 BaseIndexer 子類,則窗口邊界基於定義的
get_window_bounds
方法。其他滾動關鍵字參數,即min_periods
、center
和closed
將傳遞給get_window_bounds
。- min_periods:整數,默認無
具有值所需的窗口中的最小觀察數;否則,結果為
np.nan
。對於由偏移量指定的窗口,
min_periods
將默認為 1。對於由整數指定的窗口,
min_periods
將默認為窗口的大小。- center:布爾值,默認為 False
如果為 False,則將窗口標簽設置為窗口索引的右邊。
如果為 True,則將窗口標簽設置為窗口索引的中心。
- win_type:str,默認無
如果
None
,則所有點的權重均等。如果是字符串,它必須是有效的 scipy.signal 窗口函數。
某些 Scipy 窗口類型需要在聚合函數中傳遞額外的參數。附加參數必須與 Scipy 窗口類型方法簽名中指定的關鍵字匹配。
- on:str,可選
對於 DataFrame,計算滾動窗口的列標簽或索引級別,而不是 DataFrame 的索引。
提供的整數列被忽略並從結果中排除,因為整數索引不用於計算滾動窗口。
- axis:int 或 str,默認為 0
如果
0
或'index'
,滾動行。如果
1
或'columns'
,滾動列。- closed:str,默認無
如果
'right'
,則從計算中排除窗口中的第一個點。如果
'left'
,則從計算中排除窗口中的最後一個點。如果
'both'
,則從計算中排除窗口中的任何點。如果
'neither'
,則從計算中排除窗口中的第一個和最後一個點。默認
None
('right'
)。- method:str {‘single’, ‘table’},默認 ‘single’
-
對單個列或行 (
'single'
) 或整個對象 ('table'
) 執行滾動操作。此參數僅在方法調用中指定
engine='numba'
時實現。
Window
子類,如果通過了win_type
Rolling
子類,如果win_type
未通過
參數:
返回:
注意:
有關更多使用細節和示例,請參閱窗口操作。
例子:
>>> df = pd.DataFrame({'B':[0, 1, 2, np.nan, 4]}) >>> df B 0 0.0 1 1.0 2 2.0 3 NaN 4 4.0
窗戶
窗口長度為 2 個觀測值的滾動總和。
>>> df.rolling(2).sum() B 0 NaN 1 1.0 2 3.0 3 NaN 4 NaN
窗口跨度為 2 秒的滾動總和。
>>> df_time = pd.DataFrame({'B':[0, 1, 2, np.nan, 4]}, ... index = [pd.Timestamp('20130101 09:00:00'), ... pd.Timestamp('20130101 09:00:02'), ... pd.Timestamp('20130101 09:00:03'), ... pd.Timestamp('20130101 09:00:05'), ... pd.Timestamp('20130101 09:00:06')])
>>> df_time B 2013-01-01 09:00:00 0.0 2013-01-01 09:00:02 1.0 2013-01-01 09:00:03 2.0 2013-01-01 09:00:05 NaN 2013-01-01 09:00:06 4.0
>>> df_time.rolling('2s').sum() B 2013-01-01 09:00:00 0.0 2013-01-01 09:00:02 1.0 2013-01-01 09:00:03 3.0 2013-01-01 09:00:05 NaN 2013-01-01 09:00:06 4.0
具有 2 個觀察值的前瞻性窗口的滾動總和。
>>> indexer = pd.api.indexers.FixedForwardWindowIndexer(window_size=2) >>> df.rolling(window=indexer, min_periods=1).sum() B 0 1.0 1 3.0 2 2.0 3 4.0 4 4.0
min_periods
窗口長度為 2 個觀察值的滾動總和,但隻需要至少 1 個觀察值即可計算一個值。
>>> df.rolling(2, min_periods=1).sum() B 0 0.0 1 1.0 2 3.0 3 2.0 4 4.0
中央
將結果分配給窗口索引中心的滾動總和。
>>> df.rolling(3, min_periods=1, center=True).sum() B 0 1.0 1 3.0 2 3.0 3 6.0 4 4.0
>>> df.rolling(3, min_periods=1, center=False).sum() B 0 0.0 1 1.0 2 3.0 3 3.0 4 6.0
win_type
使用 Scipy
'gaussian'
窗口類型,窗口長度為 2 的滾動和。聚合函數中需要std
。>>> df.rolling(2, win_type='gaussian').sum(std=3) B 0 NaN 1 0.986207 2 2.958621 3 NaN 4 NaN
相關用法
- Python pandas.Series.round用法及代碼示例
- Python pandas.Series.reindex_like用法及代碼示例
- Python pandas.Series.repeat用法及代碼示例
- Python pandas.Series.rdiv用法及代碼示例
- Python pandas.Series.rsub用法及代碼示例
- Python pandas.Series.rdivmod用法及代碼示例
- Python pandas.Series.rmul用法及代碼示例
- Python pandas.Series.reindex用法及代碼示例
- Python pandas.Series.rmod用法及代碼示例
- Python pandas.Series.rpow用法及代碼示例
- Python pandas.Series.rfloordiv用法及代碼示例
- Python pandas.Series.reset_index用法及代碼示例
- Python pandas.Series.replace用法及代碼示例
- Python pandas.Series.rank用法及代碼示例
- Python pandas.Series.resample用法及代碼示例
- Python pandas.Series.radd用法及代碼示例
- Python pandas.Series.rtruediv用法及代碼示例
- Python pandas.Series.rename用法及代碼示例
- Python pandas.Series.rename_axis用法及代碼示例
- Python pandas.Series.add_prefix用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.Series.rolling。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。