I have a column in my dataframe which looks like this:
col
12
77
15
"UNKNOWN"
12
dtype: object
I want to replace "UNKNOWN" with NA and turn object into float type. But when I do this:
df["col"].replace({"UNKNOWN": np.nan}, inplace=True)
This error appears: TypeError: Cannot compare types 'ndarray(dtype=float64)' and 'str'.
How to solve this?
CodePudding user response:
Instead of replacing it might be better if you use pd.to_numeric with errors='coerce' that will automatically turn string like values into np.nan and also convert your column to numeric type:
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
