首页 > 解决方案 > 将对象转换为浮点数时出现值错误

问题描述

我正在使用一个数据集,该数据集有一列“价格”,值为“$ 150.00”。为了删除“$”,我使用了:

df.price = ([x.strip('$') for x in df.price])

有效。但是,此列仍作为“对象”保留。所以我的下一步是检查最大值以识别任何大于“1000.00”的值,这可能表示为“1,000.00。我使用:

print((df["price"]).sort_values(ascending=False))

并将顶部列表的最高值返回为“999.00”。

然后我尝试将object“价格”列转换为float. 我用了:

df['price'] = df['price'].apply(np.float)

但它返回了:

ValueError: could not convert string to float: '2,000.00'

列旁边不要显示任何大于 999.00 的数字。我尝试使用以下方法删除任何“,”:

df.price = ([x.strip(',') for x in df.price])

然后我又试了一次:

df['price'] = df['price'].apply(np.float)

但同样的错误又回来了 ValueError: could not convert string to float: '2,000.00'

我不知道发生了什么,我做错了什么。

标签: pythonpandasdataframe

解决方案


您也可以通过应用来执行此操作:

df1.Value.apply(lambda x: np.float(str(x).replace(',','')))

推荐阅读