この形式をオブジェクトとして持っています2020-11-1810:36:29.772234 +0000 UTC、日時に変換したい
Nov 23 2020
2020-11-20 23:07:59.381081 +0000 UTC
パンダを含むcsvファイルを読み取っていますが、データフレームにオブジェクトであるタイムスタンプ列があります。日時に変換できず、+ 0000UTCをフォーマットに読み取ることができませんでした
私は以下を試しました:
datetimeObj = datetime.strptime('2020-11-21 22:16:25.389601 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %Z')
しかし、%Zは私にエラーを与えています。PythonとPandasの世界の初心者へのアドバイスはありますか?
回答
3 LorenaGil Nov 23 2020 at 04:10
%Zの前に%zも追加する必要があります。
- %zは、+ HHMMまたは-HHMMの形式のオフセットを指します。
- %Zはタイムゾーン名を参照します。
これを試して:
datetime_object = datetime.strptime('2020-11-20 23:07:59.381081 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %z %Z')
1 MrFuppes Nov 23 2020 at 17:31
pandas DataFrameにその形式の日時文字列があると仮定すると、解析されない+0000
ため、同時に削除することをお勧めします。pd.to_datetime
+0000
UTC
import pandas as pd
df = pd.DataFrame({'timestamp':["2020-11-20 23:07:59.381081 +0000 UTC"]})
df['datetime'] = pd.to_datetime(df['timestamp'].str.replace(" +0000", "", regex=False))
# df['datetime']
# 0 2020-11-20 23:07:59.381081+00:00
# Name: datetime, dtype: datetime64[ns, UTC]
なぜ単にストリップしないのUTC
ですか?+0000のUTCオフセットとは対照的に、それは明白です。+0000は、タイムスタンプで表される時刻にUTC +0が発生するタイムゾーンから発生する可能性もあります。