pandas.Timestamp.floor#

Timestamp.floor(freq, ambiguous='raise', nonexistent='raise')#

返回一个新的时间戳,该时间戳已覆盖到此分辨率。

参数
freq应力

指示地板分辨率的频率字符串。

ambiguousBool或{‘RAISE’,‘NAT’},默认为‘RAISE’

其行为如下:

  • Bool包含用于确定时间是否为DST的标志(请注意,此标志仅适用于不明确的秋季DST日期)。

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

  • “Raise”将在不明确的时间引发AmbiguousTimeError。

nonexistent{‘RAISE’,‘SHIFT_FORWARD’,‘SHIFT_BACKED,’NAT‘,TimeDelta},默认’RAISE‘

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

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

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

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

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

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

加薪
如果无法转换频率,则返回ValueError。

注意事项

如果时间戳有时区,地板将相对于当地(“墙”)时间进行,并重新本地化到相同的时区。当地板接近夏令时时,请使用 nonexistentambiguous 以控制重新本地化行为。

示例

创建时间戳对象:

>>> ts = pd.Timestamp('2020-03-14T15:32:52.192548651')

可以使用多个频率单位来覆盖时间戳:

>>> ts.floor(freq='H') # hour
Timestamp('2020-03-14 15:00:00')
>>> ts.floor(freq='T') # minute
Timestamp('2020-03-14 15:32:00')
>>> ts.floor(freq='S') # seconds
Timestamp('2020-03-14 15:32:52')
>>> ts.floor(freq='N') # nanoseconds
Timestamp('2020-03-14 15:32:52.192548651')

freq 也可以是单个单位的倍数,如‘5T’(即5分钟):

>>> ts.floor(freq='5T')
Timestamp('2020-03-14 15:30:00')

或多个单位的组合,如‘1H30T’(即1小时30分钟):

>>> ts.floor(freq='1H30T')
Timestamp('2020-03-14 15:00:00')

类似于 pd.NaT

>>> pd.NaT.floor()
NaT

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

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