当前位置: 首页 > 知识库问答 >
问题:

在pandas中打开损坏的csv文件的策略

卫英悟
2023-03-14

我有一堆csv文件,我正在熊猫中加载,很好,但有一个文件出现了问题,我以这种方式打开它:

df = pd.DataFrame.from_csv(csv_file)

错误:

文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/pandas/core/frame.py”,第1268行,from_csv encoding=encoding,tupleize_cols=False)文件“/Library/Frameworks/python2.7/site packages/pandages/io/parsers.py”,第400行,在parser_f return _read(filepath_或_buffer,kwds)File“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/pandas/io/parsers.py”中,第198行,在init self中的_readparser=TextFileReader(filepath_或_buffer,**kwds)File“/Library/Frameworks/python2.7/site packages/pandages/io/parsers.py”中,第479行_make_engine(self.engine)文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/pandas/io/parsers.py”,第586行,在make_engine self中_engine=CParserWrapper(self.f,**self.options)文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/pandas/io/parsers.py”,第957行,在init self中_reader=\u解析器。文本阅读器(src,**kwds)文件“parser.pyx”,第477行,在pandas中。解析器。文本阅读器。cinit(pandas/parser.c:4434)文件“parser.pyx”,第599行,在pandas中。解析器。文本阅读器_获取_头(pandas/parser.c:5831)pandas。解析器。CParserError:传递的头=0,但文件中只有0行

对我来说,这意味着文件中存在某种损坏,快速查看似乎很好,虽然它是一个大文件,但目视检查每一行并不是一个选项,有什么好策略可以解决pandas无法打开的csv文件的故障?

好谢谢你

共有3个答案

闻人业
2023-03-14

我遇到了像你一样的问题:

/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.13.1_601_g4663353-py2.7-macosx-10.9-x86_64.egg/pandas/io/parsers.pyc在init(自,src,**kwds)970 kwds['allow_leading_cols']=self.index_col不是False 971--

/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.13.1_601_g4663353-py2.7-macosx-10.9-x86_64.egg/pandas/parser.sopandas.parser.TextReader.cinit

/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.13.1_601_g4663353-py2.7-macosx-10.9-x86_64.egg/pandas/parser.sopandas.parser.文本阅读器。_get_header(熊猫/parser. c: 6068)()

CParserError:传递的头=0,但文件中只有0行

我的代码是:

df=pd。阅读_csv(“/Users/steven/Documents/Mywork/Python/sklearn/beer/data”)

最后,我发现我犯了一个错误:我发送了一个目录路径而不是文件来读取_csv。

正确的代码是:

df=pd。阅读“_csv”(“/Users/steven/Documents/Mywork/Python/sklearn/beer/data/beer_reviews.csv”)

它向右运行。

所以,我认为你的问题在于你发送的文件。也许这是目录的路径,就像我所做的那样。也许文件是空的或损坏的,或者在错误的编码集中。

我希望以上内容对你有所帮助。

蒋星雨
2023-03-14

如果在Linux中,在操作系统中用head打开它进行检查,然后用awk或sed修复。。如果在windows中,您也可以尝试vim来检查和修复它。简而言之,用Pandas修复文件可能不是最好的。您很可能有奇怪的行尾(因为错误消息显示0行),因此需要对文件或cat进行标题或使用Vim来确定行尾,以便您可以决定如何最好地修复或处理。

慕鸿波
2023-03-14

看起来熊猫指定0行作为标题。试着调用:

df = pd.DataFrame.from_csv(csv_file,header=None)

或者

    df = pd.DataFrame.read_csv(csv_file,header=None)

然而,奇怪的是,这些文件似乎有零行(即,它是空的)。也许文件路径错了?

 类似资料:
  • 问题内容: 我使用Eclipse在Windows 7中创建了一个jar文件。当我尝试打开jar文件时,它说jar文件无效或损坏。谁能建议我为什么jar文件无效? 问题答案: 当您在Windows资源管理器中双击一个JAR文件时,会发生这种情况,但是JAR本身实际上不是 可执行的 JAR。真正的可执行JAR至少应具有带有方法的类,并在中引用它。 在Eclispe中,您需要将项目导出为 Runnabl

  • 我新安装了Excel 2016,它讨厌CSV文件。它以一栏旗杆风格打开它们,沿着A栏向下,可以看到逗号和语音标记。 突出点: > 我可以在笔记本电脑上创建CSV文件,保存这些文件,然后在笔记本电脑上再次打开它们,一切正常。 即使在记事本中打开它,保存下来,希望某种文件格式正常化,但仍然没有什么好处。 我比较了区域设置和Excel中几乎所有的设置。 我尝试将文件重命名为TXT,它打开了文本文件转换对

  • 在Microsoft Excel for Mac 2011 14.1.0版中正确打开文件时遇到问题。文件将打开,但将分隔符设置为逗号的对话框不会出现,因此所有列都用逗号连接。有没有办法让Excel识别逗号分隔符?

  • 我需要一个快速的Java方法来检查JPEG文件是否有效,或者它是否是一个被截断/损坏的图像。 我试着用几种方法: > 使用javax.imageio库 我正在寻找一个Java替代UNIX程序jpeginfo,它大约快10倍(在我的PC上,大约10个图像/秒)。

  • 我正在尝试创建一个zip文件,以便能够通过http发送多个文件。 我的问题是,生成的Zip文件在发送之前和之后都“损坏”。问题是我无法找到我做错了什么,因为我在控制台中没有收到任何错误。 那么,有人有一个想法文件我生成的zip文件损坏? 这是我的代码: 谢谢你的帮助!