Юникод символы в строке Python - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть Pandas Серия со списком названий игр, например:

  • \ u3010 \ u8266 \ u3011 \ 'Военный корабль Сага \ u30a6
  • \ u22c6Spider Solitaire +
  • \ u25bbCHESS

Я хочу удалить все символы Unicode, которые «не печатаются» (поэтому желаемый результат должен выглядеть так - Warship Saga, Spider Solitare +, CHESS)

Я пытался сделать его данные ['Name'] = data ['Name']. Str.encode ('ascii'). Str.decode ('ascii'), но это не помогло. Также не помогло только декодирование. data ['Name'] = data ['Name']. str.decode ('ascii') Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Я попробовал это, дайте мне знать, если это поможет;)

s= "\u3010\u6226\u8266\u3011Warship Saga \u30a6"
my_string = [chr(i) for i in ([(ord(c)) for c in s])]
for i in my_string:
    if type(i) == str:
        try:
            print(i.encode('utf-8').decode('ascii'))
        except:
            pass
0 голосов
/ 08 апреля 2020

Это работает для меня, в python 3, добавив 'ignore' в качестве параметра

string = '\u3010\u6226\u8266\u3011Warship Saga \u30a6'
string = string.encode('ascii', 'ignore').decode('ascii')
print(string)

Out:

Warship Saga 

Для всего столбца:

data['Name'] = data['Name'].str.encode('ascii', 'ignore').str.decode('ascii')
...