将 datetime64[ns, UTC] 熊猫列转换为日期时间

mer*_*kle 7 python datetime pandas

我有一个带有时间戳的数据框,它的数据类型是对象。

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
Run Code Online (Sandbox Code Playgroud)

我不知道上述数据帧中日期时间的格式。我将pd.to_datetime应用于上述列,其中数据类型更改为datetime64[ns, UTC]

df['timestamp'] = pd.to_datetime(df.timestamp)
Run Code Online (Sandbox Code Playgroud)

现在数据框看起来像这样,

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]
Run Code Online (Sandbox Code Playgroud)

我想将上面的 datetime64[ns, UTC] 格式转换为正常的日期时间。

For example,
2020-07-09 04:23:50.267000+00:00  to 2020-07-09 04:23:50
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这个2020-07-09T04:23:50.267Z表示的含义是什么,以及如何将其转换为日期时间对象?

Qua*_*ang 14

要删除时区,请使用tz_localize

df['timestamp'] = pd.to_datetime(df.timestamp).dt.tz_localize(None)
Run Code Online (Sandbox Code Playgroud)

输出:

                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
Run Code Online (Sandbox Code Playgroud)