gpt4 book ai didi

python - 指定名称时,Pandas read_csv 不会引发错误行的异常

转载 作者:太空宇宙 更新时间:2023-11-04 04:39:10 27 4
gpt4 key购买 nike

pandas read_csv 在遇到字段过多的行时引发异常 (error_bad_lines)。但是,当指定参数 names 时,这不会发生。

例如一个 csv 文件的格式:

1, 2, 3
1, 2, 3
1, 2, 3, 4

使用 pd.read_csv(filepath, header=None) 正确读取 ParserError: Error tokenizing data。 C 错误:第 3 行中应有 3 个字段,由于附加列而看到 4 个

但是,当“名称”被指定为参数时:

>>> pd.read_csv(filepath, names=['A', 'B', 'C'], header=None)
A B C
0 1 2 3
1 1 2 3
2 1 2 3

没有出现错误,并且包含了应该跳过的“太长/错误”行......

有没有一种方法可以指定名称并仍然引发 ParserError,以便可以使用 error_bad_lines=False 删除太长/错误的行?

最佳答案

似乎对此没有整洁的 pandas 解决方案。您可以做的是使用 python 的 open() 加载文件 CSV,然后将新的 header 添加到文件字符串中,这样您就不会修改磁盘上的原始文件。之后,您可以使用 pandas 使用 StringIO 加载文件字符串。这将保留错误:

#python3
from io import StringIO
import pandas as pd
lines = open('./test.csv', 'r').readlines()
lines = ['A, B, C'] + lines
fileString = '\n'.join(lines)
df = pd.read_csv(StringIO(fileString), sep=",")

关于python - 指定名称时,Pandas read_csv 不会引发错误行的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51049814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com