python - 我该如何解决 - 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
我该怎么做才能转换列?
解决方案
无需更换 nan
。您可以通过以下方式Int64
安全地传递:
df['A'] = np.floor(pd.to_numeric(df['A'], errors='coerce')).astype('Int64')
您的nans
将被替换为<NA>
.
资源
你需要有 pandas >.24 版本。
推荐阅读
- python - 标记一列中的 ID 第一次出现在另一列中
- javascript - 如何在 Electron 应用程序中实现插件?
- c# - 如何计算在 WPF 应用程序的主窗口函数中分配了文本的文本框的总高度
- string - 当我使用包含此处字符串的变量时,新项目“路径中的非法字符”
- image - MS Access 图像附件闪烁
- clickhouse - ClickHouse中两个字符串的比较
- android - 如何在 OPPO 或其他手机中打开主屏幕活动以选择启动器
- joomla3.0 - Joomla,无法安装扩展
- elasticsearch - 如何在弹性搜索索引中搜索值为字段的空数组的文档?
- .htaccess - CakePHP 2.8,url 重写不起作用(只能访问主路由)