【问题标题】:The error is the following: ValueError: cannot convert float NaN to integer错误如下: ValueError: cannot convert float NaN to integer
【发布时间】:2020-03-28 01:17:44
【问题描述】:

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

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

这是我拥有的功能:

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

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

【问题讨论】:

标签: python pandas date type-conversion integer


【解决方案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')

【讨论】:

猜你喜欢
  • 2020-06-12
  • 1970-01-01
  • 2022-12-02
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
相关资源
最近更新 更多