我有一个大型数据库,正在将其加载到内存缓存中。我有一个日复一日地迭代数据的过程。
最近,此进程开始抛出以下错误:
线路的OverflowError: date value out of range
start_day = start_day - datetime.timedelta(days = 1)
这是在Ubuntu 14.04.5上的Python 3.4.3中运行的
发布于 2018-03-14 06:51:02
您已到达datetime.date.min,也就是1年1月1日:
>>> from datetime import date, timedelta
>>> date.min
datetime.date(1, 1, 1)
>>> date.min - timedelta(days=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: date value out of range如果你是从datetime.date.today()开始的,那么你的代码花了736k多一点的步骤才达到这个目标:
>>> date.today().toordinal()
736766您的代码可能在某处有一个经常进行减法运算的bug。
发布于 2021-01-01 01:07:29
要克服错误,您可以更改
datetime.date(1, 1, 1)到更大的值,比如
datetime.date(2, 2, 2)但是,如果您编辑时间列,请注意,此列中的日期是人工的2、2、2或其他值
发布于 2021-06-10 22:31:01
如果您在使用pandas读取excel/csv文件时遇到此问题,请检查您的excel/csv文件,任何一个或多个列都将具有类似#############的值,这意味着值为负值(-11111)或日期太长而无法放入单元格中
import pandas as pd
df = pd.read_excel(file path,dtype='string') #this will convert all the column
type to string
or if you want to convert specific column then
df = pd.read_excel(file path,converters={'column name':str})
https://stackoverflow.com/questions/49263547
复制相似问题