Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用googletrans翻译Python中的熊猫系列?_Python_Google Translate - Fatal编程技术网

如何使用googletrans翻译Python中的熊猫系列?

如何使用googletrans翻译Python中的熊猫系列?,python,google-translate,Python,Google Translate,我希望将一列文本从印尼语翻译成英语,并在我的数据框中添加此翻译文本作为名为“英语”的新列。这是我的密码: from googletrans import Translator translator = Translator() df['English'] = translator.translate(df['Review to Translate'], src='id', dest='en') 但是,我得到了这个错误: ------------------------------------

我希望将一列文本从印尼语翻译成英语,并在我的数据框中添加此翻译文本作为名为“英语”的新列。这是我的密码:

from googletrans import Translator

translator = Translator()
df['English'] = translator.translate(df['Review to Translate'], src='id', dest='en')
但是,我得到了这个错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-81-0fd41a244785> in <module>()
      2 
      3 translator = Translator()
----> 4 y['Review in English'] = translator.translate(y['Review to Translate'], src='id', dest='en')

~/anaconda3/lib/python3.6/site-packages/googletrans/client.py in translate(self, text, dest, src)
    170 
    171         origin = text
--> 172         data = self._translate(text, dest, src)
    173 
    174         # this code will be updated when the format is changed.

~/anaconda3/lib/python3.6/site-packages/googletrans/client.py in _translate(self, text, dest, src)
     73             text = text.decode('utf-8')
     74 
---> 75         token = self.token_acquirer.do(text)
     76         params = utils.build_params(query=text, src=src, dest=dest,
     77                                     token=token)

~/anaconda3/lib/python3.6/site-packages/googletrans/gtoken.py in do(self, text)
    179     def do(self, text):
    180         self._update()
--> 181         tk = self.acquire(text)
    182         return tk

~/anaconda3/lib/python3.6/site-packages/googletrans/gtoken.py in acquire(self, text)
    145         size = len(text)
    146         for i, char in enumerate(text):
--> 147             l = ord(char)
    148             # just append if l is less than 128(ascii: DEL)
    149             if l < 128:

TypeError: ord() expected a character, but string of length 516 found
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
2.
3翻译人员=翻译人员()
---->4 y['Review in English']=translator.translate(y['Review to translate'],src='id',dest='en')
翻译中的~/anaconda3/lib/python3.6/site-packages/googletrans/client.py(self、text、dest、src)
170
171原点=文本
-->172数据=自译(文本、目的地、src)
173
174#此代码将在格式更改时更新。
~/anaconda3/lib/python3.6/site-packages/googletrans/client.py in_translate(self、text、dest、src)
73 text=text.decode('utf-8')
74
--->75 token=self.token\u收单机构.do(文本)
76 params=utils.build_params(query=text,src=src,dest=dest,
77令牌=令牌)
do中的~/anaconda3/lib/python3.6/site-packages/googletrans/gtoken.py(self,text)
179 def do(自我,文本):
180自我更新()
-->181 tk=自我获取(文本)
182返回tk
获取中的~/anaconda3/lib/python3.6/site-packages/googletrans/gtoken.py(self,text)
145尺寸=长度(文本)
146表示i,枚举中的字符(文本):
-->147 l=ord(字符)
148#如果l小于128(ascii:DEL),只需追加
149如果l<128:
TypeError:ord()应为字符,但找到长度为516的字符串

有人知道我如何解决这个问题吗?我有一个相当大的pandas df。

我猜您会得到这个错误,因为您正在将pandas
Series
对象传递给translate函数(),而不是
str
(string)对象。 尝试使用:

如果我在以下位置运行此示例:


它按预期工作

我猜您会遇到此错误,因为您正在将pandas
Series
对象传递给translate函数(),而不是
str
(string)对象。 尝试使用:

如果我在以下位置运行此示例:


它按预期工作

我在声明JSONDecodeError时出错:期望值:第1行第1列(字符0)请参阅已编辑的文章和工作示例。不清楚你为什么会这样error@cosmic_inquiry:我尝试了您的代码,但出现错误“列表索引超出范围”。为什么会出现这样的错误?我的专栏中确实有空白,我正在尝试将西班牙语文本翻译成英语。在repl.it解释器中仍然可以很好地为我翻译。。。我不知道为什么你会得到,我使用了你的代码和其他代码,但我在源语言中得到了相同的单词。库有问题吗?我在声明JSONDECODEROR时出错:期望值:第1行第1列(字符0)请参阅编辑的文章和工作示例。不清楚你为什么会这样error@cosmic_inquiry:我尝试了您的代码,但出现错误“列表索引超出范围”。为什么会出现这样的错误?我的专栏中确实有空白,我正在尝试将西班牙语文本翻译成英语。在repl.it解释器中仍然可以很好地为我翻译。。。我不知道为什么你会得到,我使用了你的代码和其他代码,但我在源语言中得到了相同的单词。图书馆有问题吗?
from googletrans import Translator
translator = Translator()
df['English'] = df['Review to Translate'].apply(translator.translate, src='id', dest='en')
from googletrans import Translator
import pandas as pd
translator = Translator()
df = pd.DataFrame({'Spanish':['piso','cama']})
df['English'] = df['Spanish'].apply(translator.translate, src='es', dest='en').apply(getattr, args=('text',))