python - 将对象转换为浮点数时出现值错误
问题描述
我正在使用一个数据集,该数据集有一列“价格”,值为“$ 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'
我不知道发生了什么,我做错了什么。
解决方案
您也可以通过应用来执行此操作:
df1.Value.apply(lambda x: np.float(str(x).replace(',','')))
推荐阅读
- ssl-certificate - Python 证书颁发机构服务器
- xml - 如何将 IMPORTXML 与 Google 表格一起使用以获得多个结果,每个结果都在不同的列中?
- ios - UITextView 在循环期间不更新
- mysql - 无法使用 JDBC 将 Apps 脚本连接到 Cloud SQL
- python - 尽管返回一个列表,但得到无
- javascript - How can I fix importing modules CORS policy error in JavaScript
- reactjs - how to make changes in reactjs project on production? on aws ec2?
- node.js - Node.js completely remove file in a running script
- java - design problem with starting foreground service from other foreground service
- javascript - In a Leaflet Map, how to make the popup scroll between different markers at the exact same coordinates?