大家好,又见面了,我是你们的朋友全栈君。
使用列的字典时,astype引发ValueError.
我试图将大DF中的稀疏列的类型转换(从float到int).我的问题是NaN值.即使将errors参数设置为’ignore’,使用列的字典时也不会忽略它们.
这是一个玩具示例:
t=pd.DataFrame([[1.01,2],[3.01, 10], [np.NaN,20]])
t.astype({0: int}, errors=’ignore’)
ValueError: Cannot convert non-finite values (NA or inf) to integer
解决方法:
您可以在pandas 0.24.0中使用新的nullable integer 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
标签:pandas,python
来源: https://codeday.me/bug/20191210/2104644.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141613.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...