美文网首页数据科学我爱编程
pandas读取excel问题解答 python3-No COD

pandas读取excel问题解答 python3-No COD

作者: 寒月谷 | 来源:发表于2017-10-23 17:50 被阅读34次

    *** No CODEPAGE record, no encoding_override: will use 'ascii' 报错信息

    UnicodeDecodeError: 'ascii' codec can't decode byte 0xb6 in position 0: ordinal not in range(128)

    前几天在用 python3 pandas读取旧的excel(2003版本)时, 遇到了这样的报错。

    stackoverflow  和百度都搜了搜。感觉还是找不到原因所在

    参考了这个 改编码的方式, workbook=xlrd.open_workbook('harvest.xls',encoding_override='cp1252')

    encoding_override='cp1252'试了 , "ISO-8859-1"这编码也试了,都不能成功。 

    然而,这些excel  在电脑上用微软excel手工打开保存后,接着跑程序处理就没问题了。

    于是想到折中的办法,用python 的os模块唤起微软程序  保存一遍试试,

    但是太麻烦了(感兴趣的朋友可自行尝试)感觉。

    最后冥思苦想出了: (ii 是excel文件名)

    from  xlutils.copy   import  copy

    file1= xlrd.open_workbook(chuli_dir +'\\'+ii ,encoding_override=sys.getfilesystemencoding() )

    file = copy(file1)

    chulihou ='D:\处理表格\hc'+'\\'+ii

    file.save('D:\处理表格\hc'+'\\'+ii)

    新建个hc文件夹, 旧excel是 file1  ,用from xlutils.copy import  copy  ,先用sys模块的获取当前文件编码 。 来打开旧excel,然后  复制一份到 hc 目录下,再从hc 目录开始工作: 

           data_excel= pd.read_excel(chulihou ,dtype=str)

    得到pandas 的dataframe 格式的data_excel  成功了!

    相关文章

      网友评论

        本文标题:pandas读取excel问题解答 python3-No COD

        本文链接:https://www.haomeiwen.com/subject/rcvouttx.html