我有某种格式的数据,我想读入pandas.DataFrame。 有些行给我一个错误。下面是其中一个字符串的最小示例,但是我有几个在其中不起作用的地方(奇怪的是在某些地方起作用的地方)。
确切的错误是:
OutOfBoundsDatetime,超出范围的纳秒级时间戳:2276-02-18 05:15:13
import pandas as pd
pd.to_datetime('02/18/2276 5:15:13 AM', format='%m/%d/%Y %I:%M:%S %p')
我使用此网站制作了格式字符串: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Period.strftime.html
感谢您的帮助!
答案 0 :(得分:3)
这是没有界限的,因为datetime
dtype为datetime64[ns]
,其上限为2262年,请参见docs,如果将分辨率更改为较低的分辨率,则可以处理此日期时间,但是很遗憾,您无法在pandas
内执行此操作。由于datetime
本机存储为datetime64[ns]
,因此您必须在numpy内或使用正常的日期时间来完成此操作。
另一种方法是,如果年份超出范围,则将其存储在单独的列中,并将年份值设置为1900
或其他指示年份超出范围的指标。
但是,这会导致性能问题,因为您丢失了一些矢量化操作