dask.dataframe.Series.dt.round

dask.dataframe.Series.dt.round

dataframe.Series.dt.round(*args, **kwargs)

对数据执行四舍五入操作到指定的 freq

此文档字符串是从 pandas.core.indexes.accessors.CombinedDatetimelikeProperties.round 复制的。

Dask 版本可能存在一些不一致性。

参数
频率str 或 Offset

要舍入索引的频率级别。必须是固定频率,如 ‘S’(秒),而不是 ‘ME’(月末)。查看 频率别名 以获取可能的 freq 值列表。

歧义‘infer’, bool-ndarray, ‘NaT’, 默认 ‘raise’

仅与 DatetimeIndex 相关:

  • ‘infer’ 将尝试根据顺序推断出夏令时转换小时

  • bool-ndarray,其中 True 表示夏令时,False 表示非夏令时(请注意,此标志仅适用于模糊时间)

  • ‘NaT’ 将在存在不明确时间的地方返回 NaT

  • ‘raise’ 如果存在不明确的时间,将引发 AmbiguousTimeError。

不存在的‘shift_forward’, ‘shift_backward’, ‘NaT’, timedelta, 默认 ‘raise’

在一个特定时区中,由于夏令时(DST)导致时钟向前调整,不存在的时间在该时区中是不存在的。

  • ‘shift_forward’ 会将不存在的时间向前移动到最近的现有时间

  • ‘shift_backward’ 会将不存在的时间向后移动到最近的存在时间

  • ‘NaT’ 将在不存在时间的地方返回 NaT

  • timedelta 对象会将不存在的时间按 timedelta 进行偏移

  • ‘raise’ 如果存在不存在的时间,将引发 NonExistentTimeError。

返回
DatetimeIndex、TimedeltaIndex 或 Series

DatetimeIndex 或 TimedeltaIndex 的相同类型的索引,或 Series 的相同索引的 Series。

Raises
如果 freq 无法转换,则引发 ValueError

注释

如果时间戳有时区信息,舍入将相对于本地(“墙”)时间进行,并重新本地化为相同时区。在接近夏令时舍入时,使用 nonexistentambiguous 来控制重新本地化的行为。

示例

DatetimeIndex

>>> rng = pd.date_range('1/1/2018 11:59:00', periods=3, freq='min')  
>>> rng  
DatetimeIndex(['2018-01-01 11:59:00', '2018-01-01 12:00:00',
               '2018-01-01 12:01:00'],
              dtype='datetime64[ns]', freq='min')
>>> rng.round('h')  
DatetimeIndex(['2018-01-01 12:00:00', '2018-01-01 12:00:00',
               '2018-01-01 12:00:00'],
              dtype='datetime64[ns]', freq=None)

系列

>>> pd.Series(rng).dt.round("h")  
0   2018-01-01 12:00:00
1   2018-01-01 12:00:00
2   2018-01-01 12:00:00
dtype: datetime64[ns]

在接近夏令时转换时进行舍入时,使用 ambiguousnonexistent 来控制时间戳应如何重新本地化。

>>> rng_tz = pd.DatetimeIndex(["2021-10-31 03:30:00"], tz="Europe/Amsterdam")  
>>> rng_tz.floor("2h", ambiguous=False)  
DatetimeIndex(['2021-10-31 02:00:00+01:00'],
              dtype='datetime64[ns, Europe/Amsterdam]', freq=None)
>>> rng_tz.floor("2h", ambiguous=True)  
DatetimeIndex(['2021-10-31 02:00:00+02:00'],
              dtype='datetime64[ns, Europe/Amsterdam]', freq=None)