簡體   English   中英

將 datetime64[ns, UTC] pandas 列轉換為日期時間

[英]convert datetime64[ns, UTC] pandas column to datetime

我有一個 dataframe,它有時間戳,它的數據類型是 object。

0    2020-07-09T04:23:50.267Z
1    2020-07-09T11:21:55.536Z
2    2020-07-09T11:23:18.015Z
3    2020-07-09T04:03:28.581Z
4    2020-07-09T04:03:33.874Z
Name: timestamp, dtype: object

我不知道上面 dataframe 中日期時間的格式。 我將pd.to_datetime應用於上面的列,其中數據類型更改為datetime64[ns, UTC]

df['timestamp'] = pd.to_datetime(df.timestamp)

現在dataframe是這樣看的,

0   2020-07-09 04:23:50.267000+00:00
1   2020-07-09 11:21:55.536000+00:00
2   2020-07-09 11:23:18.015000+00:00
3   2020-07-09 04:03:28.581000+00:00
4   2020-07-09 04:03:33.874000+00:00
Name: timestamp, dtype: datetime64[ns, UTC]

我想將上面的 datetime64[ns, UTC] 格式轉換為正常的日期時間。

For example,
2020-07-09 04:23:50.267000+00:00  to 2020-07-09 04:23:50

誰能解釋一下這個2020-07-09T04:23:50.267Z表示的含義是什么以及如何將其轉換為日期時間 object?

要刪除時區,請使用tz_localize

df['timestamp'] = pd.to_datetime(df.timestamp).dt.tz_localize(None)

Output:

                timestamp
0 2020-07-09 04:23:50.267
1 2020-07-09 11:21:55.536
2 2020-07-09 11:23:18.015
3 2020-07-09 04:03:28.581
4 2020-07-09 04:03:33.874

to_datetime 的返回取決於[令我困惑的]輸入類型:

list-like: DatetimeIndex
Series: Series of datetime64 dtype
scalar: Timestamp

所以以下失敗

df["Time"] = pd.to_datetime(df["StringArray"])
xm = df["Time"] < pd.to_datetime("12/29/2020  9:09:37 PM")

但以下工作就好了

df["Time"] = pd.to_datetime(df["StringArray"])
xm = df["Time"] < pd.to_datetime("12/29/2020  9:09:37 PM", utc=True)

這可以幫助您避免時區問題。 問候,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM