首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3 Timedelta OverflowError

Python 3 Timedelta OverflowError
EN

Stack Overflow用户
提问于 2018-03-14 02:38:04
回答 3查看 7.3K关注 0票数 4

我有一个大型数据库,正在将其加载到内存缓存中。我有一个日复一日地迭代数据的过程。

最近,此进程开始抛出以下错误:

线路的OverflowError: date value out of range

start_day = start_day - datetime.timedelta(days = 1)

这是在Ubuntu 14.04.5上的Python 3.4.3中运行的

EN

回答 3

Stack Overflow用户

发布于 2018-03-14 06:51:02

您已到达datetime.date.min,也就是1年1月1日:

代码语言:javascript
复制
>>> 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多一点的步骤才达到这个目标:

代码语言:javascript
复制
>>> date.today().toordinal()
736766

您的代码可能在某处有一个经常进行减法运算的bug。

票数 7
EN

Stack Overflow用户

发布于 2021-01-01 01:07:29

要克服错误,您可以更改

代码语言:javascript
复制
datetime.date(1, 1, 1)

到更大的值,比如

代码语言:javascript
复制
datetime.date(2, 2, 2)

但是,如果您编辑时间列,请注意,此列中的日期是人工的2、2、2或其他值

票数 1
EN

Stack Overflow用户

发布于 2021-06-10 22:31:01

如果您在使用pandas读取excel/csv文件时遇到此问题,请检查您的excel/csv文件,任何一个或多个列都将具有类似#############的值,这意味着值为负值(-11111)或日期太长而无法放入单元格中

代码语言:javascript
复制
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})

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49263547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档