使用 Pandas 读取 CSV 时出错
Posted
技术标签:
【中文标题】使用 Pandas 读取 CSV 时出错【英文标题】:Errors reading CSV with Pandas 【发布时间】:2021-11-08 05:22:11 【问题描述】:我有一个需要分析的 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:无法将字符串转换为浮点数:'ORCH'
我想省略任何发生此错误的行,但除了 error-bad-lines 参数之外我不知道如何。帮忙?
谢谢!
【问题讨论】:
asfilename.txt
包含 1 亿行 - 你认为你有足够的内存来加载它吗?
【参考方案1】:
error_bad_lines
选项不用于此目的,它仅适用于错误数量的字段。
在没有dtype
选项的情况下读取您的文件,然后使用pandas.to_numeric
和errors='coerce'
选项进行转换:
df = pd.read_csv(…)
df['field1'] = pd.to_numeric(df['field1'], errors='coerce')
df['field2'] = …
【讨论】:
完美运行。谢谢!【参考方案2】:您尝试导入为浮点数的某些列具有字符串,因此无法转换。
首先阅读没有“dtype....”的 CSV 并查看您的数据框
【讨论】:
以上是关于使用 Pandas 读取 CSV 时出错的主要内容,如果未能解决你的问题,请参考以下文章
由于额外的列值,尝试使用 pandas Python 读取 csv 时出错
在 pandas 中读取 csv 文件时出错 [CParserError: 标记数据时出错。 C 错误:捕获缓冲区溢出 - 可能是格式错误的输入文件。]