问题描述
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