Ошибка применения googletrans ко всему столбцу кадра данных («ord () ожидал символ, но найдена строка длиной 4») - PullRequest
0 голосов
/ 14 апреля 2020

Я могу перевести одно слово за раз, используя googletrans, но не весь столбец данных. Ниже мой код:

from googletrans import Translator
translator = Translator()
translated= translator.translate('田中医院')
print(translated)
print(translated.text)
hospital_group_by_trans = hospital_group_by.apply(lambda x : `translator.translate(x) if x.name =='Facility/ Hospital Name' else x)`

С другой стороны, если я использую код ниже, используя applymap:

hospital_group_by_trans = hospital_group_by.applymap(lambda x : translator.translate(x) )

Я получаю:

  File "C:\ProgramData\Anaconda3\lib\json\decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: Expecting value

Ниже приведено сообщение об ошибке, которое я получаю при использовании apply () (фрагмент кода 1):

hospital_group_by_trans = hospital_group_by.apply (лямбда-x: translationator.translate (x), если x.name == 'Facility / Hospital Имя 'иначе x) Traceback (последний вызов был последним):

Файл "", строка 1, в hospital_group_by_trans = hospital_group_by.apply (лямбда x: translationator.translate (x), если x.name ==' Facility / Имя больницы 'иначе x)

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py", строка 6004, в применении return op.get_result ()

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ apply.py", строка 318, в get_result возвращает super (FrameRowApply, self) .get_result ()

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ apply.py", строка 142, в get_result возвращает self.apply_standard ()

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ apply.py", строка 248, в apply_standard self.apply_series_generator ()

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ apply.py", строка 277, в результатах apply_series_generator [i] = self.f (v)

File " ", строка 1, в hospital_group_by_trans = hospital_group_by.apply (лямбда x: translationator.translate (x), если x.name == 'Название учреждения / больницы', иначе x)

Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ googletrans \ client.py ", строка 172, в translate data = self._translate (text, dest, sr c)

File" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ googletrans \ client.py ", строка 75, в _translate token = self.token_acquirer.do (текст)

Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ googletrans \ gtoken.py ", строка 201, в do tk = self.acquire (text)

Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ googletrans \ gtoken .py ", строка 147, я n приобрести val = ord (i)

TypeError: ('ord () ожидал символ, но найдена строка длиной 4', 'произошла в индексе Facility / Hospital Name')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...