【问题标题】:Python Dataframe 到 CSV - UnicodeEncodeError:“charmap”编解码器无法编码字符
【发布时间】:2022-01-23 13:30:13
【问题描述】:

我使用以下代码将大约 6000 个从数据框中抓取的配置文件保存到 csv:

profiles.to_csv (r'C:\Users\alexa\Desktop\profiles.csv', index = False, header=True, encoding="cp1252" )

在脚本之间停止给我以下错误消息。 csv 文件包含大约 1.500 个配置文件,这些配置文件在损坏之前已成功写入 csv - 有人知道如何解决这个问题吗?

Traceback(最近一次调用最后一次): 文件“C:\Users\alexa\PycharmProjects\cameo\main.py”,第 75 行,在 profile.to_csv (r'C:\Users\alexa\Desktop\cameo_profiles.csv', index = False, header=True, encoding="cp1252") 文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\core\generic.py”,第 3466 行,在 to_csv 返回 DataFrameRenderer(格式化程序).to_csv( 文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\format.py”,第 1105 行,在 to_csv csv_formatter.save() 文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py”,第 257 行,保存 self._save() _save 中的文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py”,第 262 行 self._save_body() _save_body 中的文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py”,第 300 行 self._save_chunk(start_i, end_i) _save_chunk 中的文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py”,第 311 行 libwriters.write_csv_rows( 文件“pandas_libs\writers.pyx”,第 72 行,在 pandas._libs.writers.write_csv_rows 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0\lib\encodings\cp1252.py”,第 19 行,编码 返回 codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError:“charmap”编解码器无法对位置 15-22 中的字符进行编码:字符映射到

进程以退出代码 1 结束

【问题讨论】:

    标签: python python-3.x pandas csv


    【解决方案1】:

    错误表明数据框中的某些单元格包含无法转换为 cp1252 字符集的字符。如果您有最新版本的 Pandas (>= 1.0),您可以使用 to_csverrors 参数。例如errors='replace' 只会为任何违规字符添加一个替换字符(通常是?):

    profiles.to_csv (r'C:\Users\alexa\Desktop\profiles.csv', index = False,
                     header=True, encoding="cp1252", errors='replace' )
    

    或者,您可以尝试使用可以表示任何 unicode 字符的 UTF-8:

    profiles.to_csv (r'C:\Users\alexa\Desktop\profiles.csv', index = False,
                     header=True, encoding="utf8" )
    

    【讨论】:

    • 完美 - 现在可以使用 - 谢谢!
    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多