dataframe中string转float问题

问题

报错

ValueError: could not convert string to float

问题描述:在数据采集的过程中,由于各种原因导致一些错误发生,而使得存入txt或者csv的数据并不一定是“”,可能会出现空值或者类似’-0.6827.1’这样的值。当用pandas读取数据之后,调用data.info()显示列的类型为object,列中单元格存的是string格式,如图:
在这里插入图片描述

调用

data=pd.DataFrame(data,dtype=np.float)

把数据转换成float类型,会出现报错:

ValueError: could not convert string to float: '-0.6827.1'

解决方案

最好的方式就是把这个值换成0或者把包含这个值的这一条数据删除。但因为数据量巨大,依靠人眼是不可能找到’-0.6827.1’这个值在哪里的,这里给出一个解决方法:

#获取所有列名
col = list(data.columns)

#分别对每一列调用apply方法,出错的地方填入NaN
data[col] = data[col].apply(pd.to_numeric, errors='coerce')

#删除含有NaN的行
data = data.dropna(axis=0,how='all')

结果如下:
在这里插入图片描述
参考:https://vimsky.com/article/3694.html

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值