我有一个需要分析的1亿行数据集。我使用这个函数读取文件:
csv2020=pd.read_csv('filename.txt',
sep="t",
error_bad_lines=False,
usecols=['field1', 'field2', 'field3', 'field4'],
dtype={'field1': int,'field2': float, 'field3': float, 'field4': float})
但是我得到了一个错误,其中一行不可能转换为浮点数:
ValueError:无法将字符串转换为float: 'ORCH'
我想省略发生此错误的任何行,但我不知道除了error-bad-lines参数之外如何省略。帮助吗?
谢谢!
error_bad_lines
选项不是用于此目的,它只适用于不正确的字段数。
在没有dtype
选项的情况下读取文件,然后使用pandas.to_numeric
和errors='coerce'
选项进行转换:
df = pd.read_csv(…)
df['field1'] = pd.to_numeric(df['field1'], errors='coerce')
df['field2'] = …
您尝试导入为float的一些列有字符串,因此无法转换。
先读取CSV文件,不要键入"dtype...."看看你的数据框架