繁体   English   中英

Pandas.read_csv() 忽略包含 FEWER 字段的坏行/行。 文本文件

[英]Pandas.read_csv() ignore bad lines/rows containing FEWER fields. Text file

I am trying to read this huge text file: https://www.dropbox.com/s/3ikikw8bxde6y1i/TCAD_SPECIAL%20EXPORT_2019_20200409.zip?dl=0 (if you download the zip, the file is Special_ARB.txt (not necessary for我的问题imo)。

我正在运行此代码(添加error_bad_lines=False )以忽略具有超出预期字段的行,效果很好:

pd.read_csv(r'~/Special_ARB.txt', sep="|", 
            header=None,encoding='cp1252',error_bad_lines=False)

问题是当一行只有一个字段时read.csv()崩溃了。 出现以下错误:

指定的列太多:预期为 77,但找到 1

有没有办法告诉 python/pandas 忽略这个错误? 它没有让我知道它是哪条线。 有超过一百万行,所以我不能自己找到它。

  • 我尝试了一个 for 循环逐行读取并从那里弄清楚,但是数据太大以至于 python 崩溃了。
  • 列数为 77,在运行代码时由 pandas 正确识别,我认为这不是问题。

谢谢,

try:
   pd.read_csv(r'~/Special_ARB.txt', sep="|", header=None,encoding='cp1252',error_bad_lines=False)
except <your error description>:
   <do this>

这应该适用于内存数据集,您可以将分块用于大型数据集的解决方案: https://stackoverflow.com/a/59331754/9379924

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM