[英]How to work around Python Pandas DataFrame's “Out of bounds nanosecond timestamp” error?
[英]Python Pandas out of bounds datetime timestamp error for long dataframe
我有一个形状为(500000,70)
的数据框df
,其中包括无效日期之类的几列,如4000-01-01 00:00:00
。 在此数据框的较小版本中,我尝试了
df["date"] = df["date"].astype(str)
df["date"] = df["date"].replace('4000-01-01 00:00:00', pd.NaT)
效果很好。 还有版本
df["date"] = pd.to_datetime(df["date"].replace("4000-01-01 00:00:00",pd.NaT))
工作。 对于长数据框版本,我收到以下错误
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 4000-01-01 00:00:00
有什么建议如何以一种优雅的方式解决这个问题,或者可能是什么问题?
谢谢。
如果向to_datetime
函数添加参数errors='coerce'
, to_datetime
为所有不可解析的日期时间返回NaT
:
df["date"] = pd.to_datetime(df["date"], errors='coerce')
该错误是因为:
In [332]: pd.Timestamp.max
Out[332]: Timestamp('2262-04-11 23:47:16.854775807')
日期的上限是这个。 而且您的值超出了范围,因此超出了OutOfBoundsError。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.