Python Pandas read_csv dtype无法将“字符串”转换为“ float64”

问题描述

我有一个标头=“ col1”和5个值的csv文件

col1
398
5432
5986
8109
/N

我打算将此设置为熊猫的数字列,所以我写了

import pandas as pd
data = pd.read_csv(r'\test1.csv',dtype = {'col1': 'float64'})

错误消息 ValueError:无法将字符串转换为float:'/ N'

以上代码在没有斜杠的情况下工作正常,最后一行将变为“ Nan”。但是在不更改我的原始数据值的情况下,是否有任何方法可以抑制“斜线”并使代码运行?

解决方法

尝试使用error_bad_lines = False:

data = pd.read_csv(r'\test1.csv',dtype = {'col1': 'float64'},error_bad_lines=False)
,

data = pd.read_csv(r'\ test1.csv',dtype = {'col1':'float64'},na_values = [r'/ N'])

根据docs,na_values参数是可识别为NaN的字符串的类似列表的结构。

,

您可以使用converters,使用errors='coerce'转换为NaN

def convert_float(val):
    return pd.to_numeric(val,errors='coerce')

df = pd.read_csv('test.csv',converters={'col1': convert_float})
print(df)

     col1
0   398.0
1  5432.0
2  5986.0
3  8109.0
4     NaN

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...