pandas.TimedeltaIndex.round#

TimedeltaIndex.round(*args, **kwargs)[源代码]#

将数据四舍五入到指定的 freq

参数
freq字符串或偏移量

要将索引舍入到的频率级别。必须是固定的频率,如‘S’(秒)而不是‘ME’(月末)。看见 frequency aliases 查看可能的列表 freq 价值。

ambiguous‘iner’,bool-ndarray,‘nat’,默认‘raise’

仅与DatetimeIndex相关:

  • INFER将尝试根据订单推断秋季DST过渡时间

  • Bool-ndarray其中True表示DST时间,False表示非DST时间(请注意,此标志仅适用于不明确的时间)

  • “NaT”将在时间不明确的地方返回NAT

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

nonexistent‘Shift_Forward’,‘Shift_Backward’,‘NAT’,TimeDelta,默认‘RAISE’

在时钟由于DST而向前移动的特定时区中不存在不存在的时间。

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

  • ‘Shift_Backup’会将不存在的时间向后移动到最接近的现有时间

  • “NaT”将返回不存在时间的NAT

  • 时间增量对象将按时间增量移动不存在的时间

  • 如果存在不存在的时间,“Raise”将引发非ExistentTimeError。

退货
DatetimeIndex、TimedeltaIndex或Series

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

加薪
如果设置了 freq 无法转换。

注意事项

如果时间戳具有时区,则四舍五入将相对于本地(“墙”)时间进行,并重新本地化到同一时区。接近夏令时时,使用 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='T')
>>> 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)

Series

>>> 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)