Python-将美元值转换为浮点数

Wolfblitza

我有存储为字符串的销售数据。我正在尝试转换为浮点数,以便我可以汇总数据,但是我收到以下错误“ ValueError:无法将字符串转换为浮点数:'收入'。

我也尝试替换美元符号和逗号,但类型仍然是字符串。

>>> df['revenue'] = df['revenue'].replace('$| ','')
>>> type('revenue')
<class 'str'>

我也尝试了以下

pd.to_numeric(df.revenue)

但这也给了我一个错误,提示“ ValueError:无法解析字符串“ $ 1,557.97”

数据在负数(即(45.22))周围也有方括号,我不确定该如何转换。

简单

您必须使用regex=True\$因为在中$有特殊含义regex
您还必须删除,

import pandas as pd

df = pd.DataFrame({'revenue': ["$1,557.97 "]})

df['revenue'] = df['revenue'].replace('\$|,', '', regex=True)

df['revenue'] = pd.to_numeric(df['revenue'])

print(df)
print(df.dtypes)

如果空格位于开头或结尾,则不必删除空格-但空格不能位于数字之间。


代替pd.to_numeric()你也可以使用

df['revenue'] = df['revenue'].astype(float)

但您仍然必须先删除$,然后再转换为float


编辑:要删除(( ))您可以使用regex

.replace('\$|,|\(|\)', '', regex=True)

因为( )具有特殊含义,regex所以您必须使用\(\)

您也可以使用regex [...]不需要的

.replace('[$,()]', '', regex=True)

import pandas as pd

df = pd.DataFrame({'revenue': [" $1,557.97 ", "((45.22))"]})

#df['revenue'] = df['revenue'].replace('\$|,|\(|\)', '', regex=True)
df['revenue'] = df['revenue'].replace('[$,()]', '', regex=True)

#df['revenue'] = pd.to_numeric(df['revenue'])
df['revenue'] = df['revenue'].astype(float)

print(df)
print(df.dtypes)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字典的python值从列表转换为浮点数

将浮点数转换为python中的总和

Python如何将字节转换为浮点数?

将python浮点数转换为字节

通过Python将特定的列转换为浮点数

python数据帧将整数转换为浮点数

python:将numpy数组转换为固定浮点数

Python值错误:无法将字符串转换为浮点数据框(如何找到值的位置)

在python中将浮点数转换为浮点时间

转换为Protobuf / C ++浮点数时,Python浮点数何时会失去精度?

如何在python中将十六进制值转换为浮点数

无法将字符串转换为浮点数 - Python Dash

熊猫Python错误:无法将字符串转换为浮点数

如何在Python 2.7中将字符串转换为浮点数

在Python 3中将字节数组转换为浮点数组

Python无法将字符串转换为浮点数

Python为什么显示“ ValueError:无法将字符串转换为浮点数”?

Python:将负字符串数字转换为浮点数时遇到的困难

Python - 如何仅将混合列表中的数字转换为浮点数?

将matlab.double转换为python3中的整数或浮点数

将整数w / 6隐含小数转换为浮点数,更正Python中的舍入错误

在Python中,如何将列表中的所有项目都转换为浮点数?

令人困惑的python-无法将字符串转换为浮点数

python:将Unicode转换为具有十进制精度的浮点数

使用ctypes将Python二进制浮点数转换为整数

ValueError:无法使用 Python 将字符串转换为浮点数

python-将字符串转换为数字(浮点数或整数)的问题

Python:ValueError:无法将字符串转换为浮点数:“ 0”

Python:将浮点数转换为4 uint8