Python:错误标记数据。 C错误:使用输入nzip文件调用源上的读取(nbytes)失败

时间:2016-11-27 23:50:16

标签: python pandas

我正在使用conda python 2.7

python --version
Python 2.7.12 :: Anaconda 2.4.1 (x86_64)

我有一种读取大型gzip文件的方法:

df = pd.read_csv(os.path.join(filePath, fileName),
     sep='|', compression = 'gzip', dtype='unicode', error_bad_lines=False)

但是当我读取文件时,我收到以下错误:

pandas.parser.CParserError: Error tokenizing data. C error: Calling read(nbytes) on source failed. Try engine='python'.
Segmentation fault: 11

我阅读了所有现有的答案,但大多数问题都有错误,例如其他列。我已经使用error_bad_lines=False选项处理了这个问题。

我有什么选择?

当我尝试解压缩文件时发现了一些有趣的东西:

gunzip -k myfile.txt.gz 
gunzip: myfile.txt.gz: unexpected end of file
gunzip: myfile.txt.gz: uncompress failed

4 个答案:

答案 0 :(得分:2)

您输入的机会实际上是folder而不是需要读取的file的路径。

Pandas.read_csv无法读取文件夹,需要明确的兼容文件名。

答案 1 :(得分:1)

输入的zip文件已损坏。从尝试使用zip修复工具的源代码中获取此文件的正确副本,然后再将其传递给pandas。

答案 2 :(得分:1)

我没有真正找到python解决方案,但使用unix工具我设法找到解决方案:

首先我使用zless myfile.txt.gz > uncompressedMyfile.txt 然后我使用sed工具删除最后一行,因为我清楚地看到最后一行已损坏。

sed '$d' uncompressedMyfile.txt

我再次对文件进行了gzip -k uncompressedMyfile.txt

我能够使用以下python代码成功读取该文件:

try:
    df = pd.read_csv(os.path.join(filePath, fileName),
                        sep='|', compression = 'gzip', dtype='unicode', error_bad_lines=False)
except CParserError:
    print "Something wrong the file"
return df

答案 3 :(得分:1)

如果您已经打开文件,有时会显示错误。尝试关闭文件并重新运行