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
我有一个包含 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