pandas.DatetimeIndex.floor#
- DatetimeIndex.floor(freq, ambiguous='raise', nonexistent='raise')[源代码]#
对数据执行向下取整操作到指定的 freq。
- 参数:
- freqstr 或 Offset
要将索引降频到的频率级别。必须是固定频率,如 ‘s’(秒)而不是 ‘ME’(月末)。请参阅 频率别名 以获取可能的 freq 值列表。
- 模棱两可‘infer’, bool-ndarray, ‘NaT’, 默认 ‘raise’
仅与 DatetimeIndex 相关:
‘infer’ 将尝试根据顺序推断出 dst-transition 小时
bool-ndarray,其中 True 表示夏令时,False 表示非夏令时(请注意,此标志仅适用于不明确的时间)
‘NaT’ 将在存在模糊时间的地方返回 NaT
‘raise’ 如果存在歧义时间,将引发 ValueError。
- nonexistent‘shift_forward’, ‘shift_backward’, ‘NaT’, timedelta, 默认 ‘raise’
在一个特定时区中,由于夏令时(DST)导致时钟向前移动,不存在的时间在该时区中不存在。
‘shift_forward’ 会将不存在的时间向前移动到最近的现有时间
‘shift_backward’ 会将不存在的时间向后移动到最接近的现有时间
‘NaT’ 将在不存在的时间返回 NaT
timedelta 对象会将不存在的时间按 timedelta 进行调整
‘raise’ 如果存在不存在的时间,将引发 ValueError。
- 返回:
- DatetimeIndex、TimedeltaIndex 或 Series
对于 DatetimeIndex 或 TimedeltaIndex 的相同类型的索引,或对于具有相同索引的 Series 的 Series。
- 引发:
- 如果 freq 无法转换,则引发 ValueError。
参见
DatetimeIndex.floor
对数据执行向下取整操作到指定的 freq。
DatetimeIndex.snap
将时间戳对齐到最近的频率。
备注
如果时间戳带有时区,则会将时间舍入到本地(“墙”)时间,然后重新定位到相同的时区。在接近夏令时进行舍入时,使用
nonexistent
和ambiguous
来控制重新定位行为。示例
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.floor('h') DatetimeIndex(['2018-01-01 11:00:00', '2018-01-01 12:00:00', '2018-01-01 12:00:00'], dtype='datetime64[ns]', freq=None)
系列
>>> pd.Series(rng).dt.floor("h") 0 2018-01-01 11: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[s, Europe/Amsterdam]', freq=None)
>>> rng_tz.floor("2h", ambiguous=True) DatetimeIndex(['2021-10-31 02:00:00+02:00'], dtype='datetime64[s, Europe/Amsterdam]', freq=None)