pandas.Timestamp.floor#
- Timestamp.floor(freq, ambiguous='raise', nonexistent='raise')#
返回一个新的 Timestamp,向下取整到此分辨率。
- 参数:
- freqstr
频率字符串,表示地板分辨率。
- 模棱两可布尔值或 {‘raise’, ‘NaT’},默认为 ‘raise’
行为如下:
bool 包含标志以确定时间是否为夏令时(请注意,此标志仅适用于模糊的秋季夏令时日期)。
‘NaT’ 将返回一个不明确时间的 NaT。
‘raise’ 将引发一个模糊时间的 ValueError。
- nonexistent{‘raise’, ‘shift_forward’, ‘shift_backward’, ‘NaT’, timedelta}, 默认 ‘raise’
在一个特定时区中,由于夏令时导致时钟向前移动,不存在的时间在该时区中不存在。
‘shift_forward’ 会将不存在的时间向前移动到最接近的现有时间。
‘shift_backward’ 会将不存在的时间向后移动到最近的现有时间。
‘NaT’ 将在不存在的时间处返回 NaT。
timedelta 对象会将不存在的时间按 timedelta 进行调整。
‘raise’ 如果存在不存在的时间,将引发 ValueError。
- 引发:
- 如果频率无法转换,则引发 ValueError。
参见
Timestamp.ceil
将时间戳四舍五入到指定的分辨率。
Timestamp.round
将时间戳四舍五入到指定的分辨率。
Series.dt.floor
将 Series 中的日期时间值向下取整。
备注
如果时间戳具有时区,则将根据本地(“墙”)时间进行向下取整,并重新定位到相同的时区。在接近夏令时进行向下取整时,使用
nonexistent
和ambiguous
来控制重新定位行为。例子
创建一个时间戳对象:
>>> ts = pd.Timestamp('2020-03-14T15:32:52.192548651')
时间戳可以使用多种频率单位进行取整:
>>> ts.floor(freq='h') # hour Timestamp('2020-03-14 15:00:00')
>>> ts.floor(freq='min') # minute Timestamp('2020-03-14 15:32:00')
>>> ts.floor(freq='s') # seconds Timestamp('2020-03-14 15:32:52')
>>> ts.floor(freq='ns') # nanoseconds Timestamp('2020-03-14 15:32:52.192548651')
freq
也可以是单个单位的多倍,例如 ‘5min’(即 5 分钟):>>> ts.floor(freq='5min') Timestamp('2020-03-14 15:30:00')
或者是多个单位的组合,比如 ‘1h30min’(即 1 小时和 30 分钟):
>>> ts.floor(freq='1h30min') Timestamp('2020-03-14 15:00:00')
类似于
pd.NaT
:>>> pd.NaT.floor() NaT
在接近夏令时转换时进行舍入时,使用
ambiguous
或nonexistent
来控制时间戳应如何重新本地化。>>> ts_tz = pd.Timestamp("2021-10-31 03:30:00").tz_localize("Europe/Amsterdam")
>>> ts_tz.floor("2h", ambiguous=False) Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')
>>> ts_tz.floor("2h", ambiguous=True) Timestamp('2021-10-31 02:00:00+0200', tz='Europe/Amsterdam')