用法:
DataFrame.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.DataFrame.round用法及代码示例
- Python cudf.DataFrame.rmul用法及代码示例
- Python cudf.DataFrame.rfloordiv用法及代码示例
- Python cudf.DataFrame.rpow用法及代码示例
- Python cudf.DataFrame.resample用法及代码示例
- Python cudf.DataFrame.radd用法及代码示例
- Python cudf.DataFrame.rdiv用法及代码示例
- Python cudf.DataFrame.reset_index用法及代码示例
- Python cudf.DataFrame.rsub用法及代码示例
- Python cudf.DataFrame.replace用法及代码示例
- Python cudf.DataFrame.repeat用法及代码示例
- Python cudf.DataFrame.rename用法及代码示例
- Python cudf.DataFrame.rmod用法及代码示例
- Python cudf.DataFrame.reindex用法及代码示例
- Python cudf.DataFrame.rtruediv用法及代码示例
- Python cudf.DataFrame.mod用法及代码示例
- Python cudf.DataFrame.isin用法及代码示例
- Python cudf.DataFrame.apply用法及代码示例
- Python cudf.DataFrame.exp用法及代码示例
- Python cudf.DataFrame.drop用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cudf.DataFrame.rolling。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。