使用 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 参数之外我不知道如何。帮忙?

谢谢!

【问题讨论】:

as filename.txt 包含 1 亿行 - 你认为你有足够的内存来加载它吗? 【参考方案1】:

error_bad_lines 选项不用于此目的,它仅适用于错误数量的字段。

在没有dtype 选项的情况下读取您的文件,然后使用pandas.to_numericerrors='coerce' 选项进行转换:

df = pd.read_csv(…)
df['field1'] = pd.to_numeric(df['field1'], errors='coerce')
df['field2'] = …

【讨论】:

完美运行。谢谢!【参考方案2】:

您尝试导入为浮点数的某些列具有字符串,因此无法转换。

首先阅读没有“dtype....”的 CSV 并查看您的数据框

【讨论】:

以上是关于使用 Pandas 读取 CSV 时出错的主要内容,如果未能解决你的问题,请参考以下文章

由于额外的列值,尝试使用 pandas Python 读取 csv 时出错

读取 CSV 文件时 Python Pandas 出错

在 pandas 中读取 csv 文件时出错 [CParserError: 标记数据时出错。 C 错误:捕获缓冲区溢出 - 可能是格式错误的输入文件。]

Python Pandas:标记数据时出错。 C 错误:读取 1GB CSV 文件时字符串中的 EOF 开始

python读取csv出错怎么解决

使用 Leaflet、folium 和 pandas 使用 python 绘制地理编码数据(来自 CSV)时出错