Python Pandas read_csv dtype 无法将 "string" 转换为 "float64"

Python Pandas read_csv dtype fails to covert "string" to "float64"

我有一个包含 header = "col1" 和 5 个值的 csv 文件

col1
398
5432
5986
8109
/N

我打算将其设置为 pandas 中的数字列,所以我写了

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

但是报错信息 ValueError:无法将字符串转换为浮点数:'/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参数是一个list-like字符串结构,可以识别为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