pandas.Series.dt.round#
- Series.dt.round(*args, **kwargs)[源代码]#
对数据执行舍入操作,以指定的`freq`为单位。
- Parameters:
- freqstr 或 Offset
将索引四舍五入到的频率级别。必须是固定频率,如 ‘S’(秒),而不是 ‘ME’(月末)。有关可能的 freq 值列表,请参阅 frequency aliases 。
- 歧义 (ambiguous)‘infer’, bool-ndarray, ‘NaT’, 默认 ‘raise’
仅适用于 DatetimeIndex:
‘infer’ 将尝试根据顺序推断DST转换的小时
bool-ndarray,其中 True 表示 DST 时间,False 表示非 DST 时间(请注意,此标志仅适用于歧义时间)
‘NaT’ 将在有歧义时间的地方返回 NaT
如果存在歧义时间,’raise’ 将引发 AmbiguousTimeError。
- 不存在 (nonexistent)‘shift_forward’, ‘shift_backward’, ‘NaT’, timedelta, default ‘raise’
由于 DST 导致时钟向前移动,某个时区中不存在的某个时间点。
‘shift_forward’ 会将不存在的时间向前移动到最近的可用时间。
‘shift_backward’ 会将不存在的时间向后移动到最近的可用时间。
‘NaT’ 在有不存在的时间时返回 NaT。
timedelta 对象会将不存在的时间按 timedelta 移动。
‘raise’ 如果存在不存在的时间,则会引发一个 NonExistentTimeError。
- Returns:
- DatetimeIndex, TimedeltaIndex, 或 Series
对于 DatetimeIndex 或 TimedeltaIndex,返回相同类型的索引;对于 Series,返回具有相同索引的 Series。
- Raises:
- 如果 freq 无法转换,则引发 ValueError。
Notes
如果时间戳具有时区,则它们将相对于本地(“挂钟”)时间进行舍入,并重新本地化为同一时区。在接近夏令时时进行舍入时,请使用
nonexistent和ambiguous来控制重新本地化行为。Examples
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)
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]
在靠近夏令时转换时进行舍入时,使用
ambiguous或nonexistent来控制应如何重新本地化时间戳。>>> 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)