當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python cudf.Series.resample用法及代碼示例


用法:

Series.resample(rule, axis=0, closed=None, label=None, convention='start', kind=None, loffset=None, base=None, on=None, level=None, origin='start_day', offset=None)

轉換(“resample”)給定時間序列數據的頻率。

參數

rule: str

表示要使用的頻率的偏移量字符串。請注意,尚不支持 DateOffset 對象。

closed: {“right”, “left”}, default None

bin 區間的哪一側是閉合的。除“M” 和“W” 的默認值為“right” 之外,所有頻率偏移的默認值為“left”。

label: {“right”, “left”}, default None

使用哪個 bin 邊標簽來標記存儲桶。除“M” 和“W” 的默認值為“right” 之外,所有頻率偏移的默認值為“left”。

on: str, optional

對於 DataFrame,使用列而不是重新采樣的索引。列必須是datetime-like。

level: str or int, optional

對於 MultiIndex,使用級別而不是用於重采樣的索引。級別必須是datetime-like。

返回

重采樣器對象

注意

請注意,結果中索引的 dtype(或 ‘on’ 列,如果使用'on=')將是最接近重采樣頻率的頻率。例如,如果從納秒重新采樣到毫秒,則索引將是 dtype 'datetime64[ms]'。

例子

首先,我們創建一個間隔為 1 分鍾的時間序列:

>>> index = cudf.date_range(start="2001-01-01", periods=10, freq="1T")
>>> sr = cudf.Series(range(10), index=index)
>>> sr
2001-01-01 00:00:00    0
2001-01-01 00:01:00    1
2001-01-01 00:02:00    2
2001-01-01 00:03:00    3
2001-01-01 00:04:00    4
2001-01-01 00:05:00    5
2001-01-01 00:06:00    6
2001-01-01 00:07:00    7
2001-01-01 00:08:00    8
2001-01-01 00:09:00    9
dtype: int64

下采樣到 3 分鍾間隔,然後是 “sum” 聚合:

>>> sr.resample("3T").sum()
2001-01-01 00:00:00     3
2001-01-01 00:03:00    12
2001-01-01 00:06:00    21
2001-01-01 00:09:00     9
dtype: int64

使用每個間隔的右側標記箱:

>>> sr.resample("3T", label="right").sum()
2001-01-01 00:03:00     3
2001-01-01 00:06:00    12
2001-01-01 00:09:00    21
2001-01-01 00:12:00     9
dtype: int64

關閉區間的右側而不是左側:

>>> sr.resample("3T", closed="right").sum()
2000-12-31 23:57:00     0
2001-01-01 00:00:00     6
2001-01-01 00:03:00    15
2001-01-01 00:06:00    24
dtype: int64

上采樣到 30 秒間隔:

>>> sr.resample("30s").asfreq()[:5]  # show the first 5 rows
2001-01-01 00:00:00       0
2001-01-01 00:00:30    <NA>
2001-01-01 00:01:00       1
2001-01-01 00:01:30    <NA>
2001-01-01 00:02:00       2
dtype: int64

使用 “bfill” 方法對空值進行上采樣和填充:

>>> sr.resample("30s").bfill()[:5]
2001-01-01 00:00:00    0
2001-01-01 00:00:30    1
2001-01-01 00:01:00    1
2001-01-01 00:01:30    2
2001-01-01 00:02:00    2
dtype: int64

按 Dataframe 的指定列重采樣:

>>> df = cudf.DataFrame({
...     "price": [10, 11, 9, 13, 14, 18, 17, 19],
...     "volume": [50, 60, 40, 100, 50, 100, 40, 50],
...     "week_starting": cudf.date_range(
...         "2018-01-01", periods=8, freq="7D"
...     )
... })
>>> df
price  volume week_starting
0     10      50    2018-01-01
1     11      60    2018-01-08
2      9      40    2018-01-15
3     13     100    2018-01-22
4     14      50    2018-01-29
5     18     100    2018-02-05
6     17      40    2018-02-12
7     19      50    2018-02-19
>>> df.resample("M", on="week_starting").mean()
               price     volume
week_starting
2018-01-31      11.4  60.000000
2018-02-28      18.0  63.333333

相關用法


注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cudf.Series.resample。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。