当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.Timestamp.round用法及代码示例


用法:

Timestamp.round(freq, ambiguous='raise', nonexistent='raise')

将时间戳四舍五入到指定的分辨率。

参数

freqstr

表示舍入分辨率的频率字符串。

ambiguousbool 或 {‘raise’, ‘NaT’},默认 ‘raise’

行为如下:

  • bool 包含用于确定时间是否为 dst 的标志(请注意,此标志仅适用于不明确的秋季 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。

返回

一个新的时间戳四舍五入到freq的给定分辨率

抛出

ValueError 如果频率不能被转换

注意

如果 Timestamp 有一个时区,则将相对于本地 (“wall”) 时间进行舍入并重新本地化到同一时区。在夏令时附近四舍五入时,使用nonexistentambiguous 来控制重新定位行为。

例子

创建时间戳对象:

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

时间戳可以使用多个频率单位进行四舍五入:

>>> ts.round(freq='H') # hour
Timestamp('2020-03-14 16:00:00')
>>> ts.round(freq='T') # minute
Timestamp('2020-03-14 15:33:00')
>>> ts.round(freq='S') # seconds
Timestamp('2020-03-14 15:32:52')
>>> ts.round(freq='L') # milliseconds
Timestamp('2020-03-14 15:32:52.193000')

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

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

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

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

类似于 pd.NaT

>>> pd.NaT.round()
NaT

在夏令时转换附近四舍五入时,使用ambiguousnonexistent 来控制如何重新定位时间戳。

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Timestamp.round。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。