如何用 NA 替换列中的字符串值并将列转换为浮点数?
Posted
技术标签:
【中文标题】如何用 NA 替换列中的字符串值并将列转换为浮点数?【英文标题】:How to replace string values from column with NA and turn column into float? 【发布时间】:2022-01-16 08:30:06 【问题描述】:我的数据框中有一列如下所示:
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'
。
如何解决?
【问题讨论】:
你试过df["col"].replace("UNKNOWN", np.nan, inplace=True)
或df["col"].replace("UNKNOWN": float("nan"), inplace=True)
【参考方案1】:
如果您将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
【讨论】:
以上是关于如何用 NA 替换列中的字符串值并将列转换为浮点数?的主要内容,如果未能解决你的问题,请参考以下文章