如何用 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_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

【讨论】:

以上是关于如何用 NA 替换列中的字符串值并将列转换为浮点数?的主要内容,如果未能解决你的问题,请参考以下文章

带有前缀的Python熊猫数据框字符串转换为浮点数

如何用另一个表中的匹配值替换/更新列中每个字符串的所有实例?

如何用 0 替换 varchar 列中的所有非数字值

将列中的 NA 替换为相邻列中的值

遍历 pandas 数据框中的列和行并将字符串转换为浮点数

如何用熊猫列中的另一个字符串替换子字符串[关闭]