Кодирование строк Pandas при извлечении значения ячейки

#python-3.x #pandas #string

Вопрос:

У меня есть следующая серия:

 s = pd.Series(['ANO DE LOS BÃEZ MH EE 3 201'])
 

Когда я печатаю серию, я получаю:

 0    ANO DE LOS BÃEZ MH EE 3 201
 

Но когда я получаю элемент ячейки, я получаю шестнадцатеричное значение в строке:

 >>> s.iloc[0]
'ANO DE LOS BÃx81EZ MH EE 3 201'
 

Почему это происходит и как я могу получить значение ячейки и получить строку: 'ANO DE LOS BÃEZ MH EE 3 201' ?

Комментарии:

1. Я не думаю, что это проблема с python, поддерживает ли ваш терминал юникод?

2. Ну, я могу определить и манипулировать строкой, которую я опубликовал, без проблем в реплике Python. Только при использовании Панд у меня возникает эта проблема.

3. Ладно, может быть, мое предположение неверно … однако я протестировал ваши фрагменты на своей машине с python и ipython (3.8.2) и pandas 0.25.3, и это работает нормально, но я думаю, что это не очень полезно для вас

4. Спасибо за ответ. Ваш комментарий действительно помог мне. При копировании строки из переполнения стека я не видел проблемы, как и вы. Проблема просто возникает с исходной строкой, которую я получил от sentry

Ответ №1:

Несмотря на то, что я не совсем уверен, где возникла проблема, я мог бы решить ее с помощью пакета unidecode.

 output_string = unidecode(s.iloc[0])