pandas读取excel出现乱码问题解决
问题描述
读取excel,却出现了如下错误。
u1.G1P0u5b5539+6u5468LOAu5355u6d3bu80ceu987au4ea72.u598au5a20u671fu7cd6u5c3fu75c53u3001u4f1au9634Iu5ea6u88c2u4f244.
问题解决
方式一:
终归还是编码的问题。主要起作用的是先decode再进行encode操作。
def read_xls(io_path): sheet = pd.read_excel(io_path, encoding=utf8) print str(sheet.values[1]).decode("unicode_escape").encode("utf8")
参考原因: 为什么是这样? 控制器显示的字符是UTF8的,所以最后需要encode成UTF8的,2.为什么要用decode? 因为要encode成UTF8,得是unicode格式的字符串才行,但是默认的字符串是str型的,所有需要把其他的字符编码转成UNICODE才行,然后,因为打印出来的乱码是. uXXX 这种形式, 所以根据经验应该是unicode_escape形式。
方式二
方式一有点逃避问题,额,经过反复试验,方式二更加靠谱。
def read_xls(io_path): # sheet是DataFrame格式,相当于整个表 sheet = pd.read_excel(io_path, encoding=utf-8) # 此处提取的sheet.values是一个数组,其中的item也是一个数组。 # sheet.values就像sheet中的所有数据 # 因此item就相当于一行,那么一行肯定也是一个数组,因为包含多个列 for item in sheet.values: item_con = item[0] print item_con
参考链接
1,