由于防止0开头的字符串在excel里面显示不了前面的0,所以一般会转变格式,这个格式转变包含很多,包括前面加“ ’ ”或者改为编码格式等,这种格式在转换为csv的时候就会是双引号引起来每个字符串,这样我们读取就不能用utf-8读取了
正常读取方法:
import pandasas pd
import numpyas np
import xlrd
trainFile ='E:/20170131.csv'
data = pd.read_csv(trainFile,encoding='utf-8')
在出现双引号的时候如果我们依然用utf-8读取会报一下错误:
Python 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuat
解决方法如下:(更改解码方法)
import pandasas pd
import numpyas np
import xlrd
trainFile ='E:/20170131.csv'
data = pd.read_csv(trainFile,encoding='GBK')
几种编码的区别:
其实上面的还可以文件还可以 使用ISO-8859-1进行解码,但是解码之后的不能显示中文,因为从本质上说,ISO-8859-1是单字节编码,自身不能显示中文
GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。
UTF-8:是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。
针对上面带引号的情况,显示中文需要使用“GBK”,其他的可以直接使用“UTF-8"。
网友评论