请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 8717|回复: 2

【新人求助】python2.7调用excel中文列失败

[复制链接]

1

主题

0

好友

11

积分

新手上路

Rank: 1

发表于 2018-10-11 15:38:24 |显示全部楼层
# -*- coding:UTF-8 -*-
import pandas as pd
import xlrd

df = pd.read_excel('ex1.xls',encoding = 'gb2312',skiprows=[0,1])  #读取xls文件,转码为gb2312
df1 = xlrd.open_workbook('ex1.xls')
print df.shape  #显示数据的行与列数
#print df.dtypes #查看数据格式dtpyes
print df.columns  #查看列名
print df.info()  # 数据表信息

print df['初始接待客服']
代码如上,本人小白一枚,跟着论坛课程自学了一段时间,现在自己尝试做个小的excel调用的数据处理程序,但是在调用这块就卡住了
在python3的环境下测试代码可以调取出来中文名称的列数据,但是python2.7环境下一直失败,希望论坛大佬赐教,如何能成功解码,跪谢

excel表部分数据如下:
网站商务通 历史记录报表
设定的条件如下:时间段:  从2018/10/5 0:00:00到2018/10/6 0:00:00
初始接待客服开始访问时间对话类型
81582018/10/5 23:56:29较好对话
81582018/10/5 23:55:52较好对话
81582018/10/5 23:45:40较好对话
81582018/10/5 23:41:16较好对话
81582018/10/5 23:40:54较好对话
81582018/10/5 23:33:54较好对话
81582018/10/5 23:23:45一般对话
81582018/10/5 23:15:22较好对话
85632018/10/5 23:04:34较好对话
81582018/10/5 23:04:20较好对话


错误信息:
E:\Python27\lib\site-packages\pandas\core\indexes\base.py:2037: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  return key in self._engine
E:\Python27\lib\site-packages\pandas\core\indexes\base.py:2057: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  return key in self._engine
E:\Python27\lib\site-packages\pandas\core\indexes\base.py:3078: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  return self._engine.get_loc(key)
E:\Python27\lib\site-packages\pandas\core\indexes\base.py:3080: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  return self._engine.get_loc(self._maybe_cast_indexer(key))
Traceback (most recent call last):
  File "E:/Python27/��ϰ/analysis/��дexcel.py", line 16, in <module>
    print df['初始接待客服']
  File "E:\Python27\lib\site-packages\pandas\core\frame.py", line 2688, in __getitem__
    return self._getitem_column(key)
  File "E:\Python27\lib\site-packages\pandas\core\frame.py", line 2695, in _getitem_column
    return self._get_item_cache(key)
  File "E:\Python27\lib\site-packages\pandas\core\generic.py", line 2489, in _get_item_cache
    values = self._data.get(item)
  File "E:\Python27\lib\site-packages\pandas\core\internals.py", line 4115, in get
    loc = self.items.get_loc(item)
  File "E:\Python27\lib\site-packages\pandas\core\indexes\base.py", line 3080, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas\_libs\index.pyx", line 140, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: '\xe5\x88\x9d\xe5\xa7\x8b\xe6\x8e\xa5\xe5\xbe\x85\xe5\xae\xa2\xe6\x9c\x8d'

Process finished with exit code 1


回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-10-11 20:24:26 |显示全部楼层
print df[u'初始接待客服'] 试试下

既然3可以,建议你不要用2.7,编码是个坑,你可能搞不定。读进来的内容、代码里的key要一致,包括类型和编码两方面。我没法帮你调试,所以我也不能保证正确

公众号回复 编码,有几篇讲这个的,不是一两句可以说清楚
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

11

积分

新手上路

Rank: 1

发表于 2018-10-12 08:53:42 |显示全部楼层
crossin先生 发表于 2018-10-11 20:24
print df 试试下

既然3可以,建议你不要用2.7,编码是个坑,你可能搞不定。读进来的内容、代码里的key要一 ...

感谢crossin先生,我去公众号学习一下,还是不行就换3了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 00:04 , Processed in 0.016752 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部