gpt4 book ai didi

python - pandas 在 csv 上提高 OutOfBoundsDatetime 但不在 sql 上提高 OutOfBoundsDatetime

转载 作者:行者123 更新时间:2023-12-01 00:23:48 26 4
gpt4 key购买 nike

我有一项运行 pandas 版本 0.25.2 的服务。该服务从数据库读取数据并将快照存储为 csv

df = pd.read_sql_query(sql_cmd, oracle)

查询结果是一个包含一些非常大的日期时间值的数据帧。 (例如 3000-01-02 00:00:00)之后我使用 df.to_csv(index=False) 创建 csv 快照并将其写入文件

在安装了 pandas 0.25.3 的不同机器上,我正在将 csv 文件的内容读取到数据框中,并尝试将日期列的数据类型更改为日期时间。这会导致 OutOfBoundsDatetime 异常

df = pd.read_csv("xy.csv")
pd.to_datetime(df['val_until'])

pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 3000-01-02 00:00:00

我正在考虑使用 pickle 创建快照并直接加载数据帧。然而,我很好奇为什么 pandas 能够在第一种情况下处理大日期时间,而在第二种情况下却不能。另外,对于我如何继续使用 csv 作为传输格式的任何建议,我们表示赞赏

最佳答案

我相信我明白了。

在第一种情况下,我不确定存储在 sql 数据库中的实际数据类型是什么,但如果没有另外指定,将其读入 df 可能会导致某种通用或字符串类型,其具有很多更高的溢出值。

最终,它最终会出现在一个字符串类型的 csv 文件中。这可能会非常长(无限?)而没有任何溢出,而您尝试使用 pandas.to_datetime 转换为的数据类型文档。最大值为 _'2262-04-11 23:47:16.854775807'根据底部第一个文档链接中显示的 Timestamp.max。

关于python - pandas 在 csv 上提高 OutOfBoundsDatetime 但不在 sql 上提高 OutOfBoundsDatetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58769138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com