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

时间:2019-12-03 11:04:10

标签: python pandas date type-conversion integer

我有一列具有datetime64 [ns]值的列。因此,在大熊猫的某些细胞中,空白时其值为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

但是,我不想永久更改该列的值类型,因此在您建议的任何情况下都请将该列更改为另一列。而且我不想删除这些值。

1 个答案:

答案 0 :(得分:1)

我认为这里没有必要转换为整数,如果缺少值,则将所有数据都转换为浮点数:

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')