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')
最佳答案
您可以在 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
关于python - DataFrame.astype() 错误参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56169473/