[英]Python Dataframe to CSV - UnicodeEncodeError: 'charmap' codec can't encode characters
I use the following code to save roughly 6.000 scraped profiles from a dataframe to a csv:我使用以下代码从 dataframe 到 csv 中保存大约 6.000 个刮取的配置文件:
profiles.to_csv (r'C:\Users\alexa\Desktop\profiles.csv', index = False, header=True, encoding="cp1252" )
Inbetween the script stops giving me the following error message.在脚本之间停止给我以下错误消息。 The csv file contains roughly 1.500 profiles which were successfully written into the csv before it breaks - does anyone know how to solve this? csv 文件包含大约 1.500 个配置文件,这些配置文件在损坏之前已成功写入 csv - 有人知道如何解决这个问题吗?
Traceback (most recent call last): File "C:\Users\alexa\PycharmProjects\cameo\main.py", line 75, in profiles.to_csv (r'C:\Users\alexa\Desktop\cameo_profiles.csv', index = False, header=True, encoding="cp1252") File "C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\core\generic.py", line 3466, in to_csv return DataFrameRenderer(formatter).to_csv( File "C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\format.py", line 1105, in to_csv csv_formatter.save() File "C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py", line 257, in save self._save() File "C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py", line 262, in _save self._save_body() File "C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py", line 300, in _save_body self._save_chunk(start_i, end_i) File "C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs. Traceback(最近一次调用最后一次):文件“C:\Users\alexa\PycharmProjects\cameo\main.py”,第 75 行,在profiles.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(formatter).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() 文件“C:\Users\alexa\ PycharmProjects\cameo\venv\lib\site-packages\pandas\io\formats\csvs.py”,第 262 行,在 _save self._save_body() 文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\ site-packages\pandas\io\formats\csvs.py”,第 300 行,在 _save_body self._save_chunk(start_i, end_i) 文件“C:\Users\alexa\PycharmProjects\cameo\venv\lib\site-packages\pandas \io\格式\csvs。 py", line 311, in _save_chunk libwriters.write_csv_rows( File "pandas_libs\writers.pyx", line 72, in pandas._libs.writers.write_csv_rows File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 15-22: character maps to py", line 311, in _save_chunk libwriters.write_csv_rows( File "pandas_libs\writers.pyx", line 72, in pandas._libs.writers.write_csv_rows File "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' codec can't encode characters in position 15-22:字符映射到
Process finished with exit code 1进程以退出代码 1 结束
The error says that some cells in your dataframe contain character that cannot be converted into the cp1252 charset.该错误表明 dataframe 中的某些单元格包含无法转换为 cp1252 字符集的字符。 If you have a recent version of Pandas (>= 1.0) you can use the errors
parameter of to_csv
.如果您有最新版本的 Pandas (>= 1.0),您可以使用to_csv
的errors
参数。 For example errors='replace'
will just put a replacement character (often ?
) for any offending character:例如errors='replace'
只会为任何有问题的字符放置一个替换字符(通常是?
):
profiles.to_csv (r'C:\Users\alexa\Desktop\profiles.csv', index = False,
header=True, encoding="cp1252", errors='replace' )
Alternatively, you could try to use UTF-8 which can represent any unicode character:或者,您可以尝试使用 UTF-8 可以代表任何 unicode 字符:
profiles.to_csv (r'C:\Users\alexa\Desktop\profiles.csv', index = False,
header=True, encoding="utf8" )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.