pandas输出to_csv 中文乱码问题

博客主要讲述了CSV文件存储采用UTF-8编码,控制台输出正常,但使用df2.to_csv保存后出现乱码,修改多种编码格式都无法解决,最终发现UTF-8本身无需BOM,而UTF-8 with BOM(utf-8-sig)需要提供BOM可解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

csv文件存储方式为utf-8
控制台输出的是正常的格式
但是df2.to_csv(‘sheet-copy.csv’,encoding=‘utf-8’)之后就是乱码的
修改了几个encoding格式都不行
最终解决是:

df2.to_csv('sheet-copy.csv',encoding='utf_8_sig')

UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一様的,没有字节序的问题,也因此它实际上并不需要BOM(“ByteOrder Mark”)。但是UTF-8 with BOM即utf-8-sig需要提供BOM
在这里插入图片描述

### pandas库中`to_csv`方法使用说明 #### 基本功能描述 `pandas.DataFrame.to_csv` 是用于将 DataFrame 对象写入 CSV 文件的方法。此方法提供了多种参数来控制输出文件的具体形式,从而满足不同的需求[^1]。 #### 主要参数介绍 - **path_or_buf**: 字符串路径名或文件句柄,默认为 None。如果设置成 None,则返回字符串而不是写出到文件[^3]。 - **sep**: 字符串,默认为逗号 (,) 。指定字段之间的分隔符。 - **na_rep**: 缺失数据表示方式,默认为空白字符 ' '。当存在缺失值时使用的替代符号。 - **header**: 是否写出行名称作为列头,默认 True 表示会写入;False 则不会写入任何头部信息。 - **index**: 控制是否应该把索引也保存下来,默认情况下是 True ,即保留行标签;如果是 False 就不记录这些信息。 - **encoding**: 设置编码格式,默认 utf8。对于中文环境可能需要更改为 gb2312 或者 gbk 来防止乱码问题发生。 下面给出一段简单的 Python 代码展示如何利用上述提到的一些常用选项导出 CSV 文件: ```python import pandas as pd data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30], 'City': ["New York", "Los Angeles"]} df = pd.DataFrame(data) # 导出CSV文件并自定义一些参数 csv_path = './output.csv' df.to_csv(path_or_buf=csv_path, sep=',', na_rep='NA', header=True, index=False, encoding='utf_8_sig') ``` 这段代码创建了一个包含姓名、年龄和城市三个属性的数据框,并将其转换成了名为 output.csv 的文件,在这个过程中设置了特定的分隔符以及处理了潜在的汉字编码兼容性问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值