【问题标题】:How to replace string values from column with NA and turn column into float?如何用 NA 替换列中的字符串值并将列转换为浮点数?
【发布时间】: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)

标签: python python-3.x pandas dataframe numpy


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 2011-11-25
    • 2021-04-18
    • 2021-10-05
    相关资源
    最近更新 更多