Skip to main content
 首页 » 编程设计

python之溢出错误 : cannot convert float infinity to integer

2025年05月04日8lautakyan007

请问我为什么会崩溃。下面的代码在 pandas 0.17.0 和 numpy 1.10.1 (python 2.7)

上运行良好
In [1]: 
import pandas as pd 
import numpy as np 
 
In [2]:     
df = pd.DataFrame([['01-Nov-2015', 1],['02-Nov-2015', np.Inf],['03-Nov-2015', 4]], columns=('Date','c1')) 
#df.Date = pd.to_datetime(df.Date) 
df 
 
Out[2]: 
    Date         c1 
0   01-Nov-2015  1.000000 
1   02-Nov-2015  inf 
2   03-Nov-2015  4.000000 
 
In [3]:     
df == np.Inf 
 
Out[3]: 
    Date    c1 
0   False   False 
1   False   True 
2   False   False 

但是,如果我取消注释行 df.Date = pd.to_datetime(df.Date) 以进行日期类型转换并再次运行它,它会丢弃标题中提到的溢出错误这个帖子。

我最初认为当将时间戳(或者它是 datetime64?)与 np.Inf 进行比较时会发生某些事情,但是情况似乎并非如此,因为以下运行良好

In [4]: 
pd.to_datetime('5-11-2015') == np.Inf 
 
Out[4]: 
False 

如有任何意见,我们将不胜感激!

请您参考如下方法:

它看起来确实像是日期时间的问题。如果我是你,我会拆分计算并稍后重新加入日期时间,底层代码中可能会发生一些奇怪的事情。