Определение того, какой язык содержит строка в pandas DataFrame - PullRequest
1 голос
/ 06 января 2020

Я новичок в Pandas и Python.

Мой фрейм данных:

df

Text
Best tv in 2020
utilizar un servicio sms gratuito
utiliser un tv pour netflix

My желаемый результат

Text                                    Language
Best tv in 2020                         en
utilizar un servicio sms gratuito       es
utiliser un tv pour netflix             fr

Что я использую:

from textblob import TextBlob

b = TextBlob("utilizar un servicio sms gratuito")
print(b.detect_language())

>>es

Я не уверен, как я мог бы интегрировать этот метод для заполнения моего Pandas Фрейм данных.

Я пытался:

df['Language'] = TextBlob(df['Text']).detect_language()

Но я получаю сообщение об ошибке:

TypeError: The `text` argument passed to `__init__(text)` must be a string, not <class 'pandas.core.series.Series'>

Я понимаю, что это значит, что Мне нужно передать строку, а не pandas DataFrame Series, поэтому мой вопрос заключается в том, как мне l oop всей серии определить язык в строке в столбце text?

Спасибо за ваши предложения .

1 Ответ

3 голосов
/ 06 января 2020

Использование Series.apply с лямбда-функцией:

df['Language'] = df['Text'].apply(lambda x: TextBlob(x).detect_language())

Или Series.map:

df['Language'] = df['Text'].map(lambda x: TextBlob(x).detect_language())

print (df)
                                Text Language
0                    Best tv in 2020       en
1  utilizar un servicio sms gratuito       es
2        utiliser un tv pour netflix       fr
...