History
home
BDA 연혁
home

- 정규식 (2)

데이터프레임에서 정규식 활용해보기

판다스에서 제공하는 데이터프레임의 문자열들을 str 메서드와 정규식을 활용하여 간단한 데이터 분석 예제를 진행해보자.

예제 데이터셋 만들기

소셜 미디어 게시물 데이터 예제를 만들어 특정 해시태그를 포함하는 게시물을 찾아 전처리를 진행해보자.
import pandas as pd data = { 'post': [ 'Just had a great lunch #food #yummy', 'Exploring the mountains #travel #adventure', 'This is how you code #programming #python', 'I love my cat #pets #cute', 'Amazing sunset #photography #nature', 'Just had a great dinner #food #delicious' ] } df = pd.DataFrame(data)
Python
복사

해시태그 추출하기

df['hashtags'] = df['post'].str.findall(r'#(\w+)') print(df)
Python
복사

Counter 클래스를 활용한 해시태그 빈도 계산

from collections import Counter # 해시태그 리스트를 하나의 리스트로 통합 all_hashtags = sum(df['hashtags'].tolist(), []) # 빈도 계산 hashtags_frequency = Counter(all_hashtags) # 가장 흔한 해시태그 출력 print(hashtags_frequency.most_common())
Python
복사

특정 단어를 포함한 게시물 필터링

great_posts = df[df['post'].str.contains(r'\bgreat\b')] print(great_posts)
Python
복사

해시태그 개수에 따른 게시물 분류

# 해시태그 개수 계산 df['hashtag_count'] = df['hashtags'].apply(len) # 해시태그가 2개 이상인 게시물 필터링 many_hashtags = df[df['hashtag_count'] >= 2] print(many_hashtags)
Python
복사

각 해시태그별 게시물 수 구하기

from collections import defaultdict # 해시태그별 게시물 수를 저장할 딕셔너리 hashtag_post_count = defaultdict(int) # 각 게시물의 해시태그를 순회하며 카운트 for hashtags in df['hashtags']: for tag in hashtags: hashtag_post_count[tag] += 1 print(dict(hashtag_post_count))
Python
복사

특정 주제의 해시태그 추출하기

food_hashtags = df['post'].str.findall(r'#(food\w*)') food_hashtags = sum(food_hashtags.tolist(), []) print(food_hashtags)
Python
복사

시태그를 제외한 게시물 텍스트 추출

df['text_without_hashtags'] = df['post'].str.replace(r'#\w+', '', regex=True).str.strip() print(df[['post', 'text_without_hashtags']])
Python
복사