注意:请原谅我非常低技能的英语,随时修改问题的标题,或者下面的文字更容易理解
我的代码中有这一行:
moto = pd.read_csv('reporte.csv')
它发送一个DtypeWarning:Columns(2,3,4,5,6,7,8,9,10,12,13)有混合类型.警告,所以我把它改成了
moto = pd.read_csv('reporte.csv', dtype={'TP': np.float64})
现在它丢弃了一个ValueError:无法将字符串转换为float:’None’.
我用Excel检查了文件(大约200K行),是的,我找到了一些“无”值的单元格.
所以我的问题是:有没有办法忽略错误,或强制python用NaN或其他东西填补违规错误?
解决方法:
我尝试创建一个csv来复制这个反馈,但不能在pandas 0.18上,所以我只能推荐两种方法来处理这个:
第一
如果您知道缺少的值都用字符串’none’标记,那么执行以下操作:
moto = pd.read_csv("test.csv", na_values=['none'])
您还可以向na_values列表添加应转换为NaN的其他标记.
第二
不使用dtype选项再次尝试第一行.
moto = pd.read_csv('reporte.csv')
读取成功是因为您只是收到警告.现在执行moto.dtypes以显示哪些列是对象.对于您要更改的内容,请执行以下操作:
moto.test_column = pd.to_numeric(data.test_column, errors='coerce')
‘coerce’选项会将任何有问题的条目(如’none’)转换为NaN.
要一次转换整个数据框,可以使用convert_objects.您也可以在单个列上使用它,但不推荐使用该选项而使用to_numeric.选项convert_numeric对NaN进行强制:
moto = moto.convert_objects(convert_numeric=True)
完成上述任何一种方法后,请继续执行fillna以执行您需要的操作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。