pandas读写文件出现乱码的解决方法

pandas读写文件出现乱码的解决方法

前期在处理一些数据时需频繁读取一些EXCEL、TXT、CSV及TSV文件,但读取时总会出现各种错误提示,让我抓狂不已,后经过不断试错,终于发现错误原因主要来自两个方面,一是分隔符的问题,另一个是字符编码的问题,解决了这两个问题,读取出错的机率会大幅下降,另外附带讲下写文件出现乱码的问题,以下就这三个方面进行阐述。

  1. 读取文件
    1.1 分隔符
    EXCEL文档是用专门的读取指令pd.read_excel(),所以可不添加分隔符参数;但CSV与TSV文件一定要加上分隔符参数,这两种文件的分隔符会有多种形式,如逗号、左斜杠、空格(可能多个)等,具体要分析下原文件使用的是哪种形式,确定后即可用参数seq=’,‘或delimiter=’,'来作为读取文件的分隔符号。
    1.2 字符编码
    若文档不含中文,一般使用UTF-8编码格式即可解决问题,但若包含中文就会复杂许多,我使用GBK、GBK2312、UTF-8等常用编码格式都有成功读取过数据,特别是EXCEL文档不加编码格式大部分也能读取,但CSV与TSV文件就没那幸运了,总有出现乱码的情况,后发现使用编码GB18030,所有乱码问题都迎刃而解,具体参数为encoding=‘GB18030’。
    1.3 相关代码如下
import pandas as pd
pd.read_csv(r'E:\提取商户交易数据20200429.tsv',encoding='gb18030',delimiter='\t')
  1. 写文件
    有时将DataFrame写入CSV文件后用EXCEL打开该文件时,会出现中文为乱码的情况,这时需在写入命令中增加一个参数encoding=“utf_8_sig”,这样就可以解决乱码问题,相关代码如下(其中total是DataFrame名):
total.to_csv(r'E:\2020年上半年结算单数据明细_商户.csv',encoding="utf_8_sig",index=False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值