如何用NA替换列中的字符串值并将列转换为浮点数?



我的数据框中有一列,如下所示:

col
12
77
15
"UNKNOWN"
12

dtype:对象

我想用NA替换"UNKNOWN"并将对象转换为浮点类型。但是当我这样做时:

df["col"].replace({"UNKNOWN": np.nan}, inplace=True)

出现此错误:TypeError: Cannot compare types 'ndarray(dtype=float64)' and 'str'

如何解决这个问题?

如果您将pd.to_numericerrors='coerce'一起使用,而不是替换它可能更好,该会自动将类似字符串的值转换为np.nan并将您的列转换为numeric类型:

df = pd.DataFrame({'col':[12,77,15,'"UNKNOWN"',12]})
df['col'] = pd.to_numeric(df['col'], errors='coerce')
print(df)
col
0  12.0
1  77.0
2  15.0
3   NaN
4  12.0

最新更新