我的数据框中有一列,如下所示:
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_numeric
与errors='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