首页 > 解决方案 > 我该如何解决 - TypeError:无法安全地将非等效 float64 转换为 int64?

问题描述

我正在尝试将一些浮点列转换为 DF 中的 int,但我遇到了错误。我已经尝试将它以及将其转换为 0(我不想这样做,因为在我的数据集中需要 NA)。

我究竟做错了什么?我都试过了:

orginalData[NumericColumns] = orginalData[NumericColumns].astype('Int64')
#orginalData[NumericColumns] = orginalData[NumericColumns].fillna(0).astype('Int64')

但它一直导致相同的错误

TypeError: cannot safely cast non-equivalent float64 to int64

我该怎么做才能转换列?

标签: pythonpandas

解决方案


无需更换 nan。您可以通过以下方式Int64 安全地传递:

df['A'] = np.floor(pd.to_numeric(df['A'], errors='coerce')).astype('Int64')

您的nans将被替换为<NA>. 资源

你需要有 pandas >.24 版本。


推荐阅读