Я импортирую таблицу excel из http://www.gapminder.org/data/ Затем я хочу переключать столбцы и строки таблицы. И это ошибка я получаю: «UnicodeDecodeError:„ASCII“кодек не может декодировать байт 0xC3 в позиции 23389: порядковый не в диапазоне (128)»Получение UnicodeDecodeError при переносе DataFrame в iPython
Я пытался кодировать/декодировать DataFrame с DataFrame .decode ('utf-8'), но он говорит, что DataFrame не имеет такого атрибута.
Ошибка возникает, потому что транспонирование не может преобразовать некоторые данные в ascii. Это правильно? Но зачем нам это делать, когда моя таблица - чистые цифры?
Большое вам спасибо.
есть больше информации об ошибке:
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-190-a252f2a45657> in <module>()
1 #your code here
2 countries = countries.transpose()
----> 3 income.transpose()
4 #income = income.decode('utf-8')
5 #content = content.decode('utf-8')
/Users/Sergey/anaconda/lib/python2.7/site-packages/IPython/core/displayhook.pyc in __call__(self, result)
236 self.write_format_data(format_dict, md_dict)
237 self.log_output(format_dict)
--> 238 self.finish_displayhook()
239
240 def cull_cache(self):
/Users/Sergey/anaconda/lib/python2.7/site-packages/IPython/kernel/zmq/displayhook.pyc in finish_displayhook(self)
70 sys.stderr.flush()
71 if self.msg['content']['data']:
---> 72 self.session.send(self.pub_socket, self.msg, ident=self.topic)
73 self.msg = None
74
/Users/Sergey/anaconda/lib/python2.7/site-packages/IPython/kernel/zmq/session.pyc in send(self, stream, msg_or_type, content, parent, ident, buffers, track, header, metadata)
647 if self.adapt_version:
648 msg = adapt(msg, self.adapt_version)
--> 649 to_send = self.serialize(msg, ident)
650 to_send.extend(buffers)
651 longest = max([ len(s) for s in to_send ])
/Users/Sergey/anaconda/lib/python2.7/site-packages/IPython/kernel/zmq/session.pyc in serialize(self, msg, ident)
551 content = self.none
552 elif isinstance(content, dict):
--> 553 content = self.pack(content)
554 elif isinstance(content, bytes):
555 # content is already packed, as in a relayed message
/Users/Sergey/anaconda/lib/python2.7/site-packages/IPython/kernel/zmq/session.pyc in <lambda>(obj)
83 # disallow nan, because it's not actually valid JSON
84 json_packer = lambda obj: jsonapi.dumps(obj, default=date_default,
---> 85 ensure_ascii=False, allow_nan=False,
86)
87 json_unpacker = lambda s: jsonapi.loads(s)
/Users/Sergey/anaconda/lib/python2.7/site-packages/zmq/utils/jsonapi.pyc in dumps(o, **kwargs)
38 kwargs['separators'] = (',', ':')
39
---> 40 s = jsonmod.dumps(o, **kwargs)
41
42 if isinstance(s, unicode):
/Users/Sergey/anaconda/lib/python2.7/json/__init__.pyc in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, encoding, default, sort_keys, **kw)
248 check_circular=check_circular, allow_nan=allow_nan, indent=indent,
249 separators=separators, encoding=encoding, default=default,
--> 250 sort_keys=sort_keys, **kw).encode(obj)
251
252
/Users/Sergey/anaconda/lib/python2.7/json/encoder.pyc in encode(self, o)
208 if not isinstance(chunks, (list, tuple)):
209 chunks = list(chunks)
--> 210 return ''.join(chunks)
211
212 def iterencode(self, o, _one_shot=False):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 23389: ordinal not in range(128)
После того как я провел 40 мин на нем, проблема решается сама, и я понятия не имею, как это сделать. Единственное, что я сделал, я добавил этот код:
#encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
Но тогда, когда я удаляю этот мир, он все еще работает. Кто-нибудь знает, почему? Спасибо!!!!
Когда вы говорите, один из лейблов, вы имеете в виду один из ячейки данных может содержать текст? Это огромный кадр данных, я не думаю, что смогу вручную найти ячейку, которая вызывает ошибку. Но мне любопытно, что буквально то, что содержит эта ячейка, составляет 234 вместо 234. Правильно ли это? – Sergey
Я имел в виду, что я думал, что это, вероятно, символ не-ascii в одном из имен строк или столбцов. – tegancp