【疑难杂症】pandas将dataframe导出为csv文件,用excel打开出现乱码字符/有多余列/行数不对

问题描述

使用pandas导出csv文件后用excel打开,出现乱码,列数也增加了。
但是在pandas中读取csv文件,dataframe中显示正常

问题原因

将DataFrame导出为CSV文件时,如果没有指定正确的编码,那么在Excel中打开文件时可能会出现乱码。默认情况下,pandas.DataFrame.to_csv函数使用utf-8编码,但是Excel通常使用utf-8-sig或cp1252编码。

解决方式

修改编码格式为uft-8-sig

1
2
df.to_csv('your_file.csv', index=False, encoding='utf-8-sig')

ROUTEROS

附:如果使用read_csv读取csv文件失败,可能是excel另存为时换了另一种编码格式,使用以下代码打开:

1
2
3
with open("file_road", 'r', encoding='gbk', errors='replace') as file:
df = pd.read_csv(file)

LIVECODESERVER

【疑难杂症】pandas将dataframe导出为csv文件,用excel打开出现乱码字符/有多余列/行数不对
https://abigail61.github.io/2024/11/23/原创-- 【疑难杂症】pandas将dataframe导出为csv文件,用excel打开出现乱码字符-有多余列-行数不对/
作者
Yajing Luo
发布于
2024年11月23日
许可协议