我有一堆csv文件,我在Pandas中加载很好,但是一个文件正在起作用我正在这样打开它:
df = pd.DataFrame.from_csv(csv_file)
错误:
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/frame.py”,第1268行,in_csv encoding = encoding,tupleize_cols = False)文件“ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/parsers.py“,第400行,在parser_f中返回_read(filepath_or_buffer,kwds)文件”/ Library / Frameworks /Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/parsers.py“,第198行,在_read解析器中= TextFileReader(filepath_or_buffer,** kwds)文件”/ Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-packages / pandas / io / parsers.py“,第479行,在init self._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 /框架/ Python.framework / Versions / 2.7 / lib / python2.7 / site-packages / pandas / io / parsers.py“,第957行,在init self._reader = _parser.TextReader(src,** kwds)文件“parser.pyx”,第477行,在pandas.parser.TextReader.cinit(pandas / parser.c:4434)文件“parser.pyx”,第599行,在pandas中 . parser.TextReader._get_header(pandas / parser.c:5831)pandas.parser.CParserError:传递头= 0但文件中只有0行
对我来说,这意味着文件中存在某种损坏,快速查看似乎很好,但它是一个大文件,并且可视化检查每一行不是一个选项,什么是一个很好的策略来解决一个问题csv文件,熊猫不会打开?
谢谢
3 回答
看起来像pandas将第0行指定为 Headers . 试着打电话:
要么
然而,奇怪的是文件似乎有零行(即它是空的) . 也许文件路径错了?
如果在Linux中打开它在操作系统中检查它然后用awk或sed修复它...如果在Windows中,你也可以尝试vim来检查和修复它 . 简而言之,在Pandas中修复文件可能不是最好的 . 您很可能有奇数行结尾(因为错误消息显示为0行),因此需要 Headers 文件或cat或使用Vim来确定行结尾,以便您可以决定如何最好地修复或处理 .
我遇到了像你这样的问题:
我的代码是:
最后,我发现我犯了一个错误:我发送了一个目录路径而不是文件到 read_csv .
正确的代码是:
它运行正确 .
所以,我认为你的问题的原因在于你发送的文件 . 也许就像我一样,它是目录的路径 . 可能该文件为空或已损坏,或者编码设置错误 .
我希望以上内容对您有所帮助 .