pandas.Timestamp.ceil#

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

返回一个新的 Timestamp,其值向上取整到此分辨率。

Parameters:
freqstr

表示上限精度的频率字符串。

歧义 (ambiguous)bool 或 {‘raise’, ‘NaT’},默认 ‘raise’

行为如下:

  • 布尔值包含标志,用于确定时间是否为夏令时(请注意,此标志仅适用于含糊的 DST 转换日期)。

  • ‘NaT’ 将为不明确的时间返回 NaT。

  • ‘raise’ 将为不明确的时间引发 AmbiguousTimeError。

不存在 (nonexistent){‘raise’, ‘shift_forward’, ‘shift_backward, ‘NaT’, timedelta},默认为 ‘raise’

由于 DST 导致时钟向前移动,某个时区中不存在的某个时间点。

  • ‘shift_forward’ 将将不存在的时间向前移至最近的可用时间。

  • ‘shift_backward’ 将将不存在的时间向后移至最近的可用时间。

  • ‘NaT’ 将在存在不存在时间的地方返回 NaT。

  • timedelta 对象将使用 timedelta 偏移不存在的时间。

  • ‘raise’ 如果存在不存在的时间,则会引发一个 NonExistentTimeError。

Raises:
如果 freq 无法转换,则引发 ValueError。

Notes

如果 Timestamp 具有时区,则 ceiling 操作将在本地(“挂钟”)时间相对进行,并重新本地化到同一时区。在靠近夏令时进行 ceiling 操作时,请使用 nonexistentambiguous 来控制重新本地化行为。

Examples

创建一个时间戳对象:

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

可以使用多个频率单位对时间戳进行 ceiling 操作:

>>> ts.ceil(freq='h') # hour
Timestamp('2020-03-14 16:00:00')
>>> ts.ceil(freq='min') # minute
Timestamp('2020-03-14 15:33:00')
>>> ts.ceil(freq='s') # seconds
Timestamp('2020-03-14 15:32:53')
>>> ts.ceil(freq='us') # microseconds
Timestamp('2020-03-14 15:32:52.192549')

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

>>> ts.ceil(freq='5min')
Timestamp('2020-03-14 15:35:00')

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

>>> ts.ceil(freq='1h30min')
Timestamp('2020-03-14 16:30:00')

pd.NaT 的类似用法:

>>> pd.NaT.ceil()
NaT

在靠近夏令时转换时进行舍入时,使用 ambiguousnonexistent 来控制应如何重新本地化时间戳。

>>> ts_tz = pd.Timestamp("2021-10-31 01:30:00").tz_localize("Europe/Amsterdam")
>>> ts_tz.ceil("h", ambiguous=False)
Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')
>>> ts_tz.ceil("h", ambiguous=True)
Timestamp('2021-10-31 02:00:00+0200', tz='Europe/Amsterdam')