解决pandas read_csv 读取中文列标题文件报错的问题
从windows操作系统本地读取csv文件报错
data=pd.read_csv(path)
Traceback(mostrecentcalllast): File"C:/Users/arron/PycharmProjects/ML/ML/test.py",line45,indata=pd.read_csv(path) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line655,inparser_f return_read(filepath_or_buffer,kwds) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line405,in_read parser=TextFileReader(filepath_or_buffer,**kwds) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line762,in__init__ self._make_engine(self.engine) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line966,in_make_engine self._engine=CParserWrapper(self.f,**self.options) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line1582,in__init__ self._reader=parsers.TextReader(src,**kwds) File"pandas\_libs\parsers.pyx",line394,inpandas._libs.parsers.TextReader.__cinit__(pandas\_libs\parsers.c:4209) File"pandas\_libs\parsers.pyx",line712,inpandas._libs.parsers.TextReader._setup_parser_source(pandas\_libs\parsers.c:8895) OSError:Initializingfromfilefailed
上述报错的解决方案是
pwd=os.getcwd() os.chdir(os.path.dirname(path)) data=pd.read_csv(os.path.basename(path)) os.chdir(pwd)
此时又报如下错误:
Traceback(mostrecentcalllast): File"C:/Users/arron/PycharmProjects/ML/ML/test.py",line47,indata=pd.read_csv(os.path.basename(path)) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line655,inparser_f return_read(filepath_or_buffer,kwds) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line405,in_read parser=TextFileReader(filepath_or_buffer,**kwds) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line762,in__init__ self._make_engine(self.engine) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line966,in_make_engine self._engine=CParserWrapper(self.f,**self.options) File"C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py",line1582,in__init__ self._reader=parsers.TextReader(src,**kwds) File"pandas\_libs\parsers.pyx",line562,inpandas._libs.parsers.TextReader.__cinit__(pandas\_libs\parsers.c:6175) File"pandas\_libs\parsers.pyx",line781,inpandas._libs.parsers.TextReader._get_header(pandas\_libs\parsers.c:9691) UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xd7inposition0:invalidcontinuationbyte
最终解决方案是:
pwd=os.getcwd() os.chdir(os.path.dirname(path)) data=pd.read_csv(os.path.basename(path),encoding='gbk') os.chdir(pwd)
以上这篇解决pandasread_csv读取中文列标题文件报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。