【发布时间】:2018-06-09 22:06:59
【问题描述】:
我遇到了 pandas read_csv 的问题。我有一个文件,其中包含 " 作为字段值。实际上,情况并非如此,但我对文件生成没有影响,因此我必须找到解决方法。
pandas.errors.ParserError:数据标记错误。 C 错误:字符串中的 EOF 从第 15345 行开始
我在 Git (link here) 上找到了一个关于此的问题报告,他们建议将用于“sep”参数的分隔符也用于“quotechar”。在这种情况下,文件的结构就会混乱。
我做的另一件事是为此添加一个例外,这将为其余文件运行代码,但对于该特定类型的文件,我将继续遇到该问题。
我用来读取 CSV 文件的命令:
df_new = pd.read_csv(file_path_name, sep=";", error_bad_lines=False)
对此有任何解决方法的想法(例如,忽略此问题的行)?我猜一种方法是使用 csv 库来删除该行(或用其他东西替换 "),但我想保持简单并在 pandas 中尽可能多地做。
Python 版本:3.6.2
熊猫版本:0.21.0
谢谢你和最好的问候
【问题讨论】:
-
您可以从您的 csv 文件中发布样本错误记录吗?我问是因为我正在尝试复制您的问题但没有遇到它。
-
error_bad_lines=False是一种解决方法。但解决方案将涉及查看导致加载错误的行。 -
您好!我已经尝试过了,这只解决了一个问题,即一行中有太多/很少的字段,当发生 EOF 问题时,它仍然不会将文件读入数据帧@user8505495:这是导致问题(分隔符设置为;)“;”;testmail@mail.com;PRI;BUS;0;1;0.00;;;;;ACTIVE;1;;;0;TRUE;GEO;FALSE;1
-
您是否尝试过此处描述的添加 quoting=csv.QUOTE_NONE 的内容 (stackoverflow.com/questions/18016037/…)?
-
@user8505495,谢谢你,它确实解决了我的问题:) 我之前看到过这个设置,但我不知道它的作用,所以我什至没有尝试过。对于任何会发现这很有用的人来说一件事 - 在 to_csv 命令中使用 quoting=3 会导致我出错(缺少转义字符),所以我只将此选项用于 read_csv。再次感谢您的帮助!