【问题标题】:Pandas UnicodeEncodeError: 'charmap' codec can't encode characterPandas UnicodeEncodeError:“charmap”编解码器无法编码字符
【发布时间】:2018-11-14 19:20:39
【问题描述】:

使用 pandas 并且每次都使用“特殊”字符,例如:é 出现它会引发编码错误。 这是我的代码:

import pandas as pd


df = pd.read_csv(r'movies analysis\movie_metadata.csv',encoding='utf-8')
print(df.loc[df['title_year'] == 2015])

这是我得到的错误:

 File "D:\ANACONDA\lib\encodings\cp1255.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xe9' in position 645: character maps to <undefined>

关于这个主题有很多线程,但没有一个提供适合我的解决方案。

【问题讨论】:

  • 您正在尝试打印您的环境(终端、IDE...)不支持的字符。您的选项是写入文件(例如使用pd.write_csv)或切换/配置终端以支持 UTF-8。

标签: python pandas unicode encoding


【解决方案1】:

export LANG=zh_CN.utf8export LANG=us_EN 添加到您的 bashrc 或您的 shell 脚本中,它对我有用 我的脚本是:

import pandas as pd
pd.read_excel(f) 
# there are chinese in my file

【讨论】:

    【解决方案2】:

    我最终做的是将所有字符“规范化”为 ascii。 这并不理想,但对我有用:

    import unicodedata
    unicodedata.normalize('NFD', Data_U_Want_To_Normalize).encode('ascii', 'ignore')
    

    所以对于像é 这样的字母,它会变成e

    【讨论】:

      猜你喜欢
      • 2015-01-21
      • 2018-08-25
      • 1970-01-01
      相关资源
      最近更新 更多