Regex для науки о данных
Регулярные выражения - это специальные последовательности символов, которые определяют шаблоны поиска в текстах. В этом посте мы обсудим, как использовать один из самых основных методов регулярных выражений в Python, «re.findall ()», для извлечения начала строковых выражений.
Давайте начнем!
Для начала давайте импортируем модуль регулярных выражений python «re»:
import re
Предположим, у нас есть следующая строка:
test_string1 = 'Python is Amazing!'
Мы можем передать выражение r «^ \ w +» в «re.findall ()» вместе с нашей строкой, которая вернет начало нашей входной строки:
regex_1 = re.findall(r"^\w+",test_string1) print(regex_1)
В выражении r «^ \ w +» символ «^» соответствует началу строки, а «\ w +» находит буквенно-цифровые символы в строке.
Если мы удалим "^", мы получим:
regex_1 = re.findall(r"\w+",test_string1) print(regex_1)
Давайте попробуем вытянуть начало другого примера строки:
test_string2 = 'Java is Amazing!'
Теперь давайте применим «re.findall ()», чтобы найти первое слово этой строки:
regex_2 = re.findall(r"^\w+",test_string2) print(regex_2)
Затем давайте рассмотрим более реалистичный сценарий, в котором этот метод может быть полезен. Предположим, у нас есть список названий видео на YouTube и соответствующих просмотров на YouTube. Нам может быть интересно проанализировать взаимосвязь между первым словом заголовка видео и соответствующим количеством просмотров видео. Рассмотрим следующий список кортежей заголовков / представлений:
youtube_titles = [("How to Tell if We're Beating COVID-19", 2200000), ("Extreme Closet Clean Out",326000), ("This is $1,000,000 in Food",8800000), ("How To Tell If Someone Truly Loves You ", 2800000), ("How to Tell Real Gold from Fake", 2300000), ("Extreme living room transformation ", 25000)]
Мы можем найти первое слово каждого заголовка следующим образом:
for title in youtube_titles: print(re.findall(r"^\w+",title[0])[0])
Мы можем добавить эти значения в список:
first_words = [] for title in youtube_titles: first_words.append(re.findall(r"^\w+",title[0])[0]) print(first_words)
Мы также можем добавить представления в список:
first_words = [] views = [] for title in youtube_titles: first_words.append(re.findall(r"^\w+",title[0])[0]) views.append(title[1])
Затем мы можем создать фрейм данных из значений первого слова и просмотров видео:
import pandas as pd df = pd.DataFrame({'first_words': first_words, 'views':views}) print(df)
Затем мы можем выполнить группировку и вычислить среднее количество просмотров для каждого первого слова:
df = df.groupby('first_words')['views'].mean() print(df)
Давайте также отсортируем эти значения в порядке убывания:
df = df.groupby('first_words')['views'].mean().sort_values(ascending = False) print(df)
Если предположить, что эти результаты получены на основе достаточно большого набора данных, скажем, с тысячами заголовков и просмотров, этот тип анализа может помочь нам в выборе оптимальных заголовков видео на YouTube.
На этом я остановлюсь, но я рекомендую вам поиграть с методом re.findall () самостоятельно.
ВЫВОДЫ
Подводя итог, в этом посте мы обсудили, как использовать метод re.findall () из модуля регулярных выражений в Python. Мы применили этот метод к двум простым строкам, чтобы вытащить первые слова каждой строки. Затем мы рассмотрели более реалистичный вариант использования, в котором мы использовали метод для извлечения первого слова из заголовков видео YouTube и вычислили соответствующее среднее количество просмотров видео для каждого первого слова. Я надеюсь, что вы нашли этот пост интересным / полезным. Код из этого поста доступен на GitHub. Спасибо за чтение!