Pandas读取文件时出现pandas.errors.EmptyDataError: No columns to parse from file的报错信息

1.遇到的问题:

读取.csv的源代码如下:

import pandas as pd

def main():
    aqi_data = pd.read_csv('china_city_aqi.csv')
    print(aqi_data.head(5))

if __name__ == "__main__":
    main()

完整的报错信息如下:

Traceback (most recent call last):
  File "D:/XXX/Python学习/lect09/AQI_9.0.py", line 14, in <module>
    main()
  File "D:/XXX/Python学习/lect09/AQI_9.0.py", line 10, in main
    aqi_data = pd.read_csv('china_city_aqi.csv')
  File "D:\XXX\Python学习\lect09\venv\new\lib\site-packages\pandas\io\parsers.py", line 702, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "D:\XXX\Python学习\lect09\venv\new\lib\site-packages\pandas\io\parsers.py", line 429, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "D:\XXX\Python学习\lect09\venv\new\lib\site-packages\pandas\io\parsers.py", line 895, in __init__
    self._make_engine(self.engine)
  File "D:\XXX\Python学习\lect09\venv\new\lib\site-packages\pandas\io\parsers.py", line 1122, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "D:\XXX\Python学习\lect09\venv\new\lib\site-packages\pandas\io\parsers.py", line 1853, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas\_libs\parsers.pyx", line 545, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

2.解决方法

看了下 pandas.read_csv 的官方文档,可能与 

engine : {‘c’, ‘python’}, optional有关(原文档如下:)

Parser engine to use. The C engine is faster while the python engine is currently more feature-complete.

所以read_csv()的参数中加入engine = "python"即可

以上的代码修改为:

import pandas as pd

def main():
    aqi_data = pd.read_csv('china_city_aqi.csv', engine='python')
    print(aqi_data.head(5))

if __name__ == "__main__":
    main()

修改后 运行成功!

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值