如何解决ValueError:无法在位置0处解析字符串“ 15,181.80”
我正在尝试将df转换为所有数值,但出现以下错误。
ValueError: Unable to parse string "15,181.80" at position 0
这是我当前的代码:
data = pd.read_csv('pub?gid=1704010735&single=true&output=csv',usecols=[0,1,2],header=0,encoding="utf-8-sig",index_col='Date')
data.apply(pd.to_numeric)
print("we have a total of:",len(data)," samples")
data.head()
在尝试转换之前是df:
Clicks Impressions
Date
01/03/2020 15,181.80 1.22%
02/03/2020 12,270.76 0.56%
03/03/2020 39,420.79 0.80%
04/03/2020 22,223.97 0.79%
05/03/2020 17,084.45 0.88%
我认为问题在于它可以处理特殊字符E.G. “,“ - 这个对吗?最好的建议是什么帮助将DF转换为所有数值?
谢谢!
解决方法
删除数据框中数字中的所有,
将解决您的问题。
这是我使用的代码:
import pandas as pd
df = pd.DataFrame({'value':['10,000.23','20,000.30','10,000.10']})
df['value'] = df['value'].str.replace(',','').astype(float)
df.apply(pd.to_numeric)
输出:
value
0 10000.23
1 20000.30
2 10000.10
编辑:
您还可以使用:
df= df.value.str.replace(','').astype(float)
value
是您要转换的列
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。