引发OverflowError(“ int64加法中的溢出”)OverflowError:int64加法中的溢出

时间:2019-10-14 09:46:06

标签: python-3.x

我正在尝试通过最小入数和出生日期列计算总年龄。 我试过了:

patient_admission['minadmit'] = pd.to_datetime(patient_admission['minadmit'], infer_datetime_format=True)
patient_admission['DOB'] = pd.to_datetime(patient_admission['DOB'], infer_datetime_format=True)
print("*******************")
print(patient_admission['minadmit'])
print("*******************")
print(patient_admission['DOB'])

这就是结果:

*******************
0       2149-12-17 20:41:00
1       2149-12-17 20:41:00
2       2149-12-17 20:41:00
3       2188-11-12 09:22:00
4       2110-07-27 06:46:00
                ...        
58971   2111-09-30 12:04:00
58972   2161-07-15 12:00:00
58973   2135-01-06 07:15:00
58974   2129-01-03 07:15:00
58975   2149-06-08 15:21:00
Name: minadmit, Length: 58976, dtype: datetime64[ns]
*******************
0       2075-03-13
1       2075-03-13
2       2075-03-13
3       2164-12-27
4       2090-03-15
           ...    
58971   2026-05-25
58972   2124-07-27
58973   2049-11-26
58974   2076-07-25
58975   2098-07-25
Name: DOB, Length: 58976, dtype: datetime64[ns]

之后,我只写这个:

patient_admission['age'] = list(map(lambda x: x.days , (patient_admission['minadmit'] - patient_admission['DOB'])/365.242 ))

我遇到此错误:

  

raise OverflowError(“ int64加法中的溢出”)OverflowError:int64加法中的溢出

此错误的原因是什么,我该如何解决。

1 个答案:

答案 0 :(得分:0)

尝试一下

patient_admission['date_of_admission'] = pd.to_datetime(patient_admission['date_of_admission']).dt.date
patient_admission['DOB'] = pd.to_datetime(patient_admission['DOB']).dt.date

不确定是否会解决此问题,但您可能需要在lambda函数中使用x.dt.days