微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ValueError:无法在位置0处解析字符串“ 15,181.80”

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?