熊猫将具有数字和nan的对象转换为int或float

时间:2019-08-26 11:16:12

标签: pandas dataframe object floating-point int

知道类似的案例已经被回答了好几次了,我还是无法使它起作用。

样本数据:

10
5
20

5

6

在我发现以下内容后:

df = df['column_name'].astype(str).astype(int)

如果输入数据中没有nan,它将起作用。

error: invalid literal for int() with base 10: 'nan'

我也确实尝试使用float,但是它也给出了错误

error: could not convert string to float

我想念什么?

输出可以是带有“ null”,“ nan”,“”的任何内容,例如:

10
5
20
null
5
null
6

1 个答案:

答案 0 :(得分:1)

您可以使用to_numericaccountRepository转换为数字,以使列中的浮点数和整数使用nullable integer data type(熊猫0.24 +):

errors='coerce'

详细信息

df['column_name'] = pd.to_numeric(df['column_name'], errors='coerce').astype('Int64')
print (df)
   column_name
0           10
1            5
2           20
3          NaN
4            5
5          NaN
6            6