Строчные предложения в списках в панде

1

У меня есть кадр данных pandas, как показано ниже. Я хочу преобразовать весь текст в нижний регистр. Как я могу сделать это в python?

Пример кадра данных

[Nah I don't think he goes to usf, he lives around here though]                                                                                                                                                                                                                          

[Even my brother is not like to speak with me., They treat me like aids patent.]                                                                                                                                                                                                      

[I HAVE A DATE ON SUNDAY WITH WILL!, !]                                                                                                                                                                                                                                                  

[As per your request 'Melle Melle (Oru Minnaminunginte Nurungu Vettam)' has been set as your callertune for all Callers., Press *9 to copy your friends Callertune]                                                                                                                      

[WINNER!!, As a valued network customer you have been selected to receivea £900 prize reward!, To claim call 09061701461., Claim code KL341., Valid 12 hours only.]

Что я пробовал

def toLowercase(fullCorpus):
   lowerCased = [sentences.lower()for sentences in fullCorpus['sentTokenized']]
   return lowerCased

Я получаю эту ошибку

lowerCased = [sentences.lower()for sentences in fullCorpus['sentTokenized']]
AttributeError: 'list' object has no attribute 'lower'
Теги:
pandas
nlp

3 ответа

1
Лучший ответ

Также можно сделать string, использовать str.lower и вернуться к спискам.

import ast
df.sentTokenized.astype(str).str.lower().transform(ast.literal_eval)
  • 1
    Это сэкономит мне много времени
1

Это легко:

df.applymap(str.lower)

или же

df['col'].apply(str.lower)
df['col'].map(str.lower)

Хорошо, у вас есть списки в строках. Затем:

df['col'].map(lambda x: list(map(str.lower, x)))
  • 0
    Я получаю эти ошибки - TypeError: («дескриптор« lower »требует объект« str », но получил« список »», «произошел в индексе sentTokenized»), TypeError: дескриптор «lower» требует объект «str», но получил 'список'
  • 0
    @Kabilesh Смотрите обм.
1

Вы можете попробовать использовать apply и map:

def toLowercase(fullCorpus):
   lowerCased = fullCorpus['sentTokenized'].apply(lambda row:list(map(str.lower, row)))
   return lowerCased

Ещё вопросы

Сообщество Overcoder
Наверх
Меню