亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法在熊貓中轉換為日期時間

無法在熊貓中轉換為日期時間

慕勒3428872 2022-06-14 17:57:13
我有以下數據框f26,f27,f28,f29,f30,f31,f322018-03-11 03:00:00-04:00,36.0,21,0.00,55,11.5,3102018-03-11 01:00:00-04:00,36.0,21,0.00,54,12.7,3202018-03-11 00:00:00-05:00,37.0,20,0.00,50,12.7,3102018-03-10 23:00:00-05:00,37.0,19,0.00,48,15.0,3102018-03-10 22:00:00-05:00,38.0,20,0.00,48,16.1,320當我嘗試轉換f26為日期時間時,由于某種原因它失敗了。我懷疑這與字符串末尾的時區有關。但我不確定如何處理。我不知道我會收到什么時間格式,而且我有數百個不同的數據集。我正在執行以下操作:key = "f26"df[key] = pd.to_datetime(df[key]) 我假設 pandas 會識別如何處理不同的日期時間格式,但顯然它失敗了,我不知道如何處理它。錯誤:Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=True因此,如果我添加 utc=True 它可以工作。我目前的解決方案是嘗試在沒有 utc 的情況下進行轉換,如果我發現異常,請嘗試 utc。我不確定是否有更好的解決方案以及如何在沒有一堆 try-except 塊的情況下捕獲所有可能的格式,因為我有許多具有許多不同格式的表。
查看完整描述

3 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

以下解決方案對我有用:

df['local_date'] = pd.to_datetime(df['hour'], infer_datetime_format=True, utc=True )
df['local_date'] = df['local_date'].dt.tz_localize('UTC')

顯然,這些方法可以連接起來,但為了便于閱讀而分開。

  • utc = True:返回UTC DatetimeIndex,這是允許tz_localize()方法所需的。

  • infer_datetime_format = True:另一個有用的參數,它試圖推斷日期時間字符串的格式。

大熊貓 0.19中的參考

同樣的問題:https ://stackoverflow.com/a/61642126/5985898


查看完整回答
反對 回復 2022-06-14
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

試試下面:


>>> from dateutil.parser import parse

>>> df[key].apply(lambda x: parse(x)) 


查看完整回答
反對 回復 2022-06-14
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

這是我的示例代碼:


input_data = {

    'f26': ['2018-03-10 22:00:00-05:00', '2018-03-10 22:00:00-05:00', '2018-03-10 22:00:00-05:00']

}

df = pd.DataFrame(data=input_data)

key = "f26"

df[key] = pd.to_datetime(df[key])

我能夠成功運行它。請提供您的錯誤消息或更新您的示例代碼,以便我們重現錯誤。


查看完整回答
反對 回復 2022-06-14
  • 3 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號