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()
修改后 运行成功!