функция casefold() не работает при использовании фрейма данных Pandas

#python #pandas

#питон #панды

Вопрос:

У меня есть фрейм данных твитов, которые содержат столбцы id, text, lang, created_at и location. Я выполняю нормализацию текстового столбца, и мне нужно сделать весь текст в нижнем регистре.

Текстовый столбец содержит 6 строк.

 Elephants ruined again fields and kills a farmer
SFF Friday night build
Dont
Hi
i will forever love and her family
The only way Republicans know 
 

Вот несколько твитов, которые я захватил из Твиттера. Когда я просто применяю

 df.["text"].str.casefold()
 

это не работает. Выходные данные такие же, как и входные, без каких-либо изменений. Я также попробовал использовать функцию lower(), которая также не работает. Как я могу выполнить сворачивание дела?

Ответ №1:

попробуйте выполнить следующее:

 x = '''Elephants ruined again fields and kills a farmer
SFF Friday night build
Dont
Hi
i will forever love and her family
The only way Republicans know'''
df = pd.DataFrame(x.split('n'), columns=['text'])
#*** use str.lower() ***
df.text = df.text.str.lower()
print(df)
 
 0    elephants ruined again fields and kills a farmer
1                              sff friday night build
2                                                dont
3                                                  hi
4                  i will forever love and her family
5                       the only way republicans know
Name: text, dtype: object
 

Комментарии:

1. ПРИВЕТ, это работает, спасибо, но знаете ли вы, можно ли это применить, когда в текстовом столбце много строк. Например, более 20000 твитов.

2. Должно работать до предела системной памяти. Кому-то поумнее нужно будет поговорить о производительности… Вы всегда можете разделить работу на N циклов, если возникает проблема с памятью.