问答一下,轻松解决,电脑应用解决专家!
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win10/Win11
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascriptLinux系统
PHP教程CSS教程XML教程

pandas读取excel出现乱码问题解决

更新时间:2021-09-11 13:54 作者:自由的小白点击:

问题描述

读取excel,却出现了如下错误。

u'1.G1P0\u5b5539+6\u5468LOA\u5355\u6d3b\u80ce\u987a\u4ea72.\u598a\u5a20\u671f\u7cd6\u5c3f\u75c53\u3001\u4f1a\u9634I\u5ea6\u88c2\u4f244.

问题解决

方式一:

终归还是编码的问题。主要起作用的是先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才行,然后,因为打印出来的乱码是. u'\XXX' 这种形式, 所以根据经验应该是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
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容