首页 > 解决方案 > Zulu 格式的时间戳字符串到日期时间

问题描述

根据Google 的文档,我正在处理的时间戳是:

RFC3339 UTC“Zulu”格式的时间戳,精确到纳秒。示例:“2014-10-02T15:01:23.045123456Z”。

因此,例如,如果字符串是'2019-11-06T06:24:42.558008Z',则pd.to_datetime('2019-11-06T06:24:42.558008Z',infer_datetime_format=True)工作并返回Timestamp('2019-11-06 06:24:42.558008')

但是,让 Pandas 推断格式很慢,而且我有很多行数据。我会传递什么format参数来帮助加快处理速度?

标签: pandas

解决方案


您可以将to_datetimeutc=True+ tz_convert一起使用:

import pandas as pd

utc = pd.to_datetime('2019-11-06T06:24:42.558008Z', utc=True).tz_convert(None)
inferred = pd.to_datetime('2019-11-06T06:24:42.558008Z', infer_datetime_format=True)

print(utc == inferred)

输出

True

从文档中tz_convert

一个 tz 的 None 将转换为 UTC 并删除时区信息。

请注意,只做:

utc = pd.to_datetime('2019-11-06T06:24:42.558008Z', utc=True)  # or pd.to_datetime('2019-11-06T06:24:42.558008Z')

比较时抛出 TypeError 异常inferred

TypeError:无法比较 tz-naive 和 tz-aware 时间戳


推荐阅读