用法:
DataFrame.tz_localize(tz, axis=0, level=None, copy=True, ambiguous='raise', nonexistent='raise')
將 Series 或 DataFrame 的 tz-naive 索引本地化到目標時區。
此操作本地化索引。要本地化 timezone-naive 係列中的值,請使用
Series.dt.tz_localize()
。- tz:str 或 tzinfo
- axis:要定位的軸
- level:int, str, 默認無
如果軸 ia 是 MultiIndex,則本地化特定級別。否則必須為無。
- copy:布爾值,默認為真
同時製作基礎數據的副本。
- ambiguous:‘infer’, bool-ndarray, ‘NaT’, 默認 ‘raise’
當時鍾由於 DST 向後移動時,可能會出現不明確的時間。例如,在歐洲中部時間 (UTC+01) 中,當從 03:00 DST 到 02:00 非 DST 時,當地時間 02:30:00 發生在 00:30:00 UTC 和 01:30:00世界標準時間。在這種情況下,
ambiguous
參數指示應如何處理模棱兩可的時間。‘infer’ 將嘗試根據訂單推斷秋季 dst-transition 小時
bool-ndarray 其中 True 表示 DST 時間,False 表示非 DST 時間(請注意,此標誌僅適用於模棱兩可的時間)
'NaT' 將在時間不明確的地方返回 NaT
如果時間不明確,‘raise’ 將引發 AmbiguousTimeError。
- nonexistent:str,默認 ‘raise’
由於 DST,時鍾向前移動的特定時區不存在不存在的時間。有效值為:
‘shift_forward’ 將不存在的時間向前移動到最接近的存在時間
‘shift_backward’ 將不存在的時間向後移動到最接近的存在時間
‘NaT’ 將返回不存在時間的 NaT
timedelta 對象會將不存在的時間移動 timedelta
如果時間不存在,‘raise’ 將引發 NonExistentTimeError。
- Series或DataFrame
與輸入相同的類型。
- TypeError
如果 TimeSeries 是 tz-aware 並且 tz 不是 None。
參數:
返回:
拋出:
例子:
本地化當地時間:
>>> s = pd.Series([1], ... index=pd.DatetimeIndex(['2018-09-15 01:30:00'])) >>> s.tz_localize('CET') 2018-09-15 01:30:00+02:00 1 dtype:int64
小心 DST 更改。當有順序數據時,pandas 可以推斷 DST 時間:
>>> s = pd.Series(range(7), ... index=pd.DatetimeIndex(['2018-10-28 01:30:00', ... '2018-10-28 02:00:00', ... '2018-10-28 02:30:00', ... '2018-10-28 02:00:00', ... '2018-10-28 02:30:00', ... '2018-10-28 03:00:00', ... '2018-10-28 03:30:00'])) >>> s.tz_localize('CET', ambiguous='infer') 2018-10-28 01:30:00+02:00 0 2018-10-28 02:00:00+02:00 1 2018-10-28 02:30:00+02:00 2 2018-10-28 02:00:00+01:00 3 2018-10-28 02:30:00+01:00 4 2018-10-28 03:00:00+01:00 5 2018-10-28 03:30:00+01:00 6 dtype:int64
在某些情況下,推斷 DST 是不可能的。在這種情況下,您可以將 ndarray 傳遞給 ambiguous 參數以顯式設置 DST
>>> s = pd.Series(range(3), ... index=pd.DatetimeIndex(['2018-10-28 01:20:00', ... '2018-10-28 02:36:00', ... '2018-10-28 03:46:00'])) >>> s.tz_localize('CET', ambiguous=np.array([True, True, False])) 2018-10-28 01:20:00+02:00 0 2018-10-28 02:36:00+02:00 1 2018-10-28 03:46:00+01:00 2 dtype:int64
如果 DST 轉換導致時間不存在,您可以使用 timedelta 對象或
‘shift_forward’
或‘shift_backward’
將這些日期向前或向後移動。>>> s = pd.Series(range(2), ... index=pd.DatetimeIndex(['2015-03-29 02:30:00', ... '2015-03-29 03:30:00'])) >>> s.tz_localize('Europe/Warsaw', nonexistent='shift_forward') 2015-03-29 03:00:00+02:00 0 2015-03-29 03:30:00+02:00 1 dtype:int64 >>> s.tz_localize('Europe/Warsaw', nonexistent='shift_backward') 2015-03-29 01:59:59.999999999+01:00 0 2015-03-29 03:30:00+02:00 1 dtype:int64 >>> s.tz_localize('Europe/Warsaw', nonexistent=pd.Timedelta('1H')) 2015-03-29 03:30:00+02:00 0 2015-03-29 03:30:00+02:00 1 dtype:int64
相關用法
- Python pandas.DataFrame.to_numpy用法及代碼示例
- Python pandas.DataFrame.truncate用法及代碼示例
- Python pandas.DataFrame.to_json用法及代碼示例
- Python pandas.DataFrame.to_markdown用法及代碼示例
- Python pandas.DataFrame.to_sql用法及代碼示例
- Python pandas.DataFrame.transpose用法及代碼示例
- Python pandas.DataFrame.to_xml用法及代碼示例
- Python pandas.DataFrame.transform用法及代碼示例
- Python pandas.DataFrame.to_latex用法及代碼示例
- Python pandas.DataFrame.to_pickle用法及代碼示例
- Python pandas.DataFrame.to_string用法及代碼示例
- Python pandas.DataFrame.to_csv用法及代碼示例
- Python pandas.DataFrame.to_dict用法及代碼示例
- Python pandas.DataFrame.to_clipboard用法及代碼示例
- Python pandas.DataFrame.to_hdf用法及代碼示例
- Python pandas.DataFrame.to_excel用法及代碼示例
- Python pandas.DataFrame.truediv用法及代碼示例
- Python pandas.DataFrame.to_records用法及代碼示例
- Python pandas.DataFrame.take用法及代碼示例
- Python pandas.DataFrame.to_stata用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.tz_localize。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。