python - 错误如下: ValueError: cannot convert float NaN to integer

标签 python pandas date type-conversion integer

我有一列包含 datetime64[ns] 值。因此,在 pandas 的某些单元格中,当它为空时,其值为 NaN。我想运行以下函数,但遇到错误。

错误如下:ValueError: 无法将 float NaN 转换为整数

这是我的功能:

def excel_date2(date1):
    temp = datetime(1899, 12, 30)   
    delta = date1 - temp
    return int(delta.days)

这是我在项目中调用它的位置:

df['endedAtInteger'] = df['endedAt'].apply(excel_date2)

以下是该列具有的值的示例:

NaN

2018-09-02 15:20:15

2018-09-02 18:04:34

2018-09-02 18:11:15

2018-09-02 18:39:34

但是,我不想永久更改该列的值类型,因此无论您建议什么,请对另一列执行此操作。如果可能的话,我不想删除这些值。

最佳答案

我认为在这里转换为整数是没有必要的,如果缺少值,所有数据都会转换为 float :

def excel_date2(date1):
    temp = datetime(1899, 12, 30)   
    delta = date1 - temp
    return delta.days

但如果需要,可以使用 Nullable integer data type :

df['endedAtInteger'] = df['endedAt'].apply(excel_date2).astype('Int64')

关于python - 错误如下: ValueError: cannot convert float NaN to integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59155658/

相关文章:

python - 如何检测 Pandas 时间序列图中的突然变化

python pandas/numpy 根据映射方案替换所有值的快速方法

date - Neo4j - 日期转换

sql - 如何计算1个月currentDate之后的日期

python - 除非导入,否则 distutils.spawn 不可用

python - Pep8 E501 : line too long error

python - 如何用 Pandas 绘制垂直面积图

python - 通常只允许每个套接字地址使用一次(但我需要使用相同的端口...)

python - 将祖鲁时间字符串转换为 MST 日期时间对象

javascript - date-fns startOfWeek 和格式 W 之间的差异