python - DataFrame.astype() 错误参数
问题描述
astype
使用. ValueError
_dict of columns
我正在尝试将大 DF 中的稀疏列的类型(从浮点数转换为整数)。我的问题是NaN
价值观。即使errors
参数设置为,在使用列的字典时它们也不会被忽略'ignore'
。
这是一个玩具示例:
t=pd.DataFrame([[1.01,2],[3.01, 10], [np.NaN,20]])
t.astype({0: int}, errors='ignore')
ValueError:无法将非有限值(NA 或 inf)转换为整数
解决方案
您可以在 pandas 0.24.0+中使用新的可为空整数dtype。在使用之前,您首先需要将任何不完全等于整数的浮点数转换为等于整数值(例如舍入、截断等)astype
:
In [1]: import numpy as np; import pandas as pd; pd.__version__
Out[1]: '0.24.2'
In [2]: t = pd.DataFrame([[1.01, 2],[3.01, 10], [np.NaN, 20]])
In [3]: t.round().astype('Int64')
Out[3]:
0 1
0 1 2
1 3 10
2 NaN 20
推荐阅读
- python - 在 OSX 上使用 cx_Freeze 构建后应用程序无法启动
- java - 无法部署 /EJB 项目
- sql - 在同一个插入中使用值并从中选择
- r - 在 R Markdowns 中的代码块内插入绘图
- swift - 带有全屏控制的 UIView 中的 Swift 5 Loop MP4
- tomcat - 2021年tomcat 9.0最快连接:NIO还是APR?
- docker - Coldfusion Docker 正在卸载构建时的模块
- r - 调整绘图边距以显示图形图例
- graphql - 使用 prisma graphql apollo 检查记录是否存在
- html - 如何在网页源中关闭 Safari 自动填充功能