Json 到 pd。DataFrame:解析为具有不同时间戳格式的日期时间

Json to pd.DataFrame: parsing to datetime with different timestamp formats

提问人:sander 提问时间:7/26/2023 更新时间:7/26/2023 访问量:49

问:

我正在处理来自 Google Takeout 的大型 JSON 文件(大约 4000 万行)。数据示例如下图所示。我将数据加载到 a 中,并将时间戳更改为 .时间戳几乎总是采用 的格式,我用它来将时间戳解析为日期时间。以下代码有效:pd.DataFramepd.datetime%Y-%m-%dT%H:%M:%S.%f

self.df["timestamp"] = pd.to_datetime(self.df["timestamp"], 
    format="%Y-%m-%dT%H:%M:%S.%f"
)

但是,从图像中突出显示的时间戳中可以看出,有时时间戳不包括纳秒(匹配:)。这会导致解析时出错:"%Y-%m-%dT%H:%M:%S"

"ValueError: unconverted data remains when parsing with format "%Y-%m-%dT%H:%M:%S.%f": "Z" at position 0."

我的问题:如何解析具有不同格式的整个 JSON,这些格式支持带和不带纳秒的时间戳?我可以在解析之前通过循环它并从字符串中删除纳秒来预处理 JSON 文件,但这对我来说似乎非常低效。可以在此处找到少量可重复的样品。

enter image description here

Python Pandas DataFrame DateTime 解析

评论

3赞 FObersteiner 7/26/2023
看起来像非常标准的ISO格式;只是使用 ?此外,在 pandas 2 中,您可以指定哪些可能有助于提高性能(文档)。pd.to_datetime(self.df["timestamp"])format="ISO8601"

答: 暂无答案