用法:
Series.rolling(window, min_periods=None, center=False, axis=0, win_type=None)
滾動窗口計算。
- window:int、offset 或 BaseIndexer 子類
窗口的大小,即用於計算統計量的觀察數。對於日期時間索引,可以提供偏移量而不是 int.。偏移量必須可轉換為時間增量。與固定窗口大小相反,每個窗口的大小都將適應偏移量指定的時間段內的觀察結果。如果傳遞了 BaseIndexer 子類,則根據定義的
get_window_bounds
方法計算窗口邊界。- min_periods:整數,可選
窗口中要求為非空的最小觀測數,以使結果為非空。如果未提供或
None
,min_periods
等於窗口大小。- center:布爾型,可選
如果
True
,則將結果設置在窗口的中心。如果False
(默認),結果設置在窗口的右邊。
Rolling
對象。
參數:
返回:
例子:
>>> import cudf >>> a = cudf.Series([1, 2, 3, None, 4])
窗口大小為 2 的滾動總和。
>>> print(a.rolling(2).sum()) 0 1 3 2 5 3 4 dtype: int64
窗口大小為 2 和 min_periods 1 的滾動和。
>>> print(a.rolling(2, min_periods=1).sum()) 0 1 1 3 2 5 3 3 4 4 dtype: int64
窗口大小為 3 的滾動計數。
>>> print(a.rolling(3).count()) 0 1 1 2 2 3 3 2 4 2 dtype: int64
窗口大小為 3 的滾動計數,但結果集位於窗口的中心。
>>> print(a.rolling(3, center=True).count()) 0 2 1 3 2 2 3 2 4 1 dtype: int64
由偏移量指定的可變窗口大小的滾動最大值;僅對日期時間索引有效。
>>> a = cudf.Series( ... [1, 9, 5, 4, np.nan, 1], ... index=[ ... pd.Timestamp('20190101 09:00:00'), ... pd.Timestamp('20190101 09:00:01'), ... pd.Timestamp('20190101 09:00:02'), ... pd.Timestamp('20190101 09:00:04'), ... pd.Timestamp('20190101 09:00:07'), ... pd.Timestamp('20190101 09:00:08') ... ] ... )
>>> print(a.rolling('2s').max()) 2019-01-01T09:00:00.000 1 2019-01-01T09:00:01.000 9 2019-01-01T09:00:02.000 9 2019-01-01T09:00:04.000 4 2019-01-01T09:00:07.000 2019-01-01T09:00:08.000 1 dtype: int64
使用
apply
方法在窗口上應用自定義函數>>> import numpy as np >>> import math >>> b = cudf.Series([16, 25, 36, 49, 64, 81], dtype=np.float64) >>> def some_func(A): ... b = 0 ... for a in A: ... b = b + math.sqrt(a) ... return b ... >>> print(b.rolling(3, min_periods=1).apply(some_func)) 0 4.0 1 9.0 2 15.0 3 18.0 4 21.0 5 24.0 dtype: float64
這也適用於通過偏移設置的窗口滾動
>>> import pandas as pd >>> c = cudf.Series( ... [16, 25, 36, 49, 64, 81], ... index=[ ... pd.Timestamp('20190101 09:00:00'), ... pd.Timestamp('20190101 09:00:01'), ... pd.Timestamp('20190101 09:00:02'), ... pd.Timestamp('20190101 09:00:04'), ... pd.Timestamp('20190101 09:00:07'), ... pd.Timestamp('20190101 09:00:08') ... ], ... dtype=np.float64 ... ) >>> print(c.rolling('2s').apply(some_func)) 2019-01-01T09:00:00.000 4.0 2019-01-01T09:00:01.000 9.0 2019-01-01T09:00:02.000 11.0 2019-01-01T09:00:04.000 7.0 2019-01-01T09:00:07.000 8.0 2019-01-01T09:00:08.000 17.0 dtype: float64
相關用法
- Python cudf.Series.round用法及代碼示例
- Python cudf.Series.reindex用法及代碼示例
- Python cudf.Series.rmod用法及代碼示例
- Python cudf.Series.rtruediv用法及代碼示例
- Python cudf.Series.resample用法及代碼示例
- Python cudf.Series.replace用法及代碼示例
- Python cudf.Series.rename用法及代碼示例
- Python cudf.Series.rmul用法及代碼示例
- Python cudf.Series.rdiv用法及代碼示例
- Python cudf.Series.reset_index用法及代碼示例
- Python cudf.Series.radd用法及代碼示例
- Python cudf.Series.rsub用法及代碼示例
- Python cudf.Series.rpow用法及代碼示例
- Python cudf.Series.rfloordiv用法及代碼示例
- Python cudf.Series.repeat用法及代碼示例
- Python cudf.Series.ceil用法及代碼示例
- Python cudf.Series.update用法及代碼示例
- Python cudf.Series.max用法及代碼示例
- Python cudf.Series.head用法及代碼示例
- Python cudf.Series.interleave_columns用法及代碼示例
注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cudf.Series.rolling。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。