为 Pandas Dataframe 使用 TextBlob 翻译函数的问题

issue with using TextBlob translate function for Pandas Dataframe

我正在尝试使用 TextBlob 翻译功能将非英语语言转换为英语。 我的数据集基于 Pandas 数据框。

我知道它在非 Pandas 数据框上下文中有效。 例如,

what=TextBlob("El apartamento de Evan esta muy bien situado, con fcil acceso al cualquier punto de Manhattan gracias al metro.")
whatt=what.translate(to= 'en')
print (whatt)

但基于 Pandas 数据框,TextBlob 翻译无法正常工作。
我搜索了解决此问题的方法并找到了代码,但给了我一条不同的错误消息。谁能帮我解决这个问题?

data["comments"] = data["comments"].str.encode('ISO 8859-1', 'ignore').apply(lambda x: TextBlob(x.strip()).translate(to='en'))

TypeError: cannot use a string pattern on a bytes-like object

有趣的问题

import pandas as pd
data = { 'number' : [1,2], 'comments' : ['El apartamento de Evan','Manhattan gracias al metro' ] }
df = pd.DataFrame(data)

然后让我们将其翻译成新的字符串

df["commentst"] = df["comments"].apply(lambda x: str(TextBlob(x).translate(to='en')))

这给出了

    number  comments                    commentst
0   1       El apartamento de Evan      Evan's Apartment
1   2       Manhattan gracias al metro  Manhattan thanks to the subway

这是一个最小的试用版

def get_english(message):
    analysis = TextBlob(message)
    language = analysis.detect_language()
    if language == 'en':
        return message
    return str(analysis.translate(to='en'))

df["commentst"] = df["comments"].apply(lambda x: get_english(x))
df

它和我的一样 - 但我不确定你的数据