當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。