데이터프레임에서 특정 문자 포함 행 추출하기
데이터 분석을 하다 보면 데이터의 특정 열에서 영어 또는 한글이 포함된 행만 추출하거나, 특정 키워드가 들어간 행을 따로 가져와야 할 때가 많다. Python의 pandas 라이브러리를 사용하여 이러한 작업을 쉽게 수행할 수 있다.
1. 영어가 포함된 행만 추출하기
특정 열에 영어 문자가 포함된 행만 추출하려면 str.contains() 메서드를 사용하면다. 이때, 정규식을 활용하여 영어 문자가 포함된 행을 필터링할 수 있다.
import pandas as pd
# 샘플 데이터 생성
data = {
'장소': ['Seoul Station', '서울역', 'Busan Port', '인천공항', 'Gwanghwamun', '김포공항'],
'기타': [1, 2, 3, 4, 5, 6]
}
df = pd.DataFrame(data)
# '장소' 열에 영어가 포함된 행만 추출
english_data = df[df['장소'].str.contains('[a-zA-Z]', regex=True)]
print(english_data)
## 이 코드를 실행하면 장소 열에 영어가 포함된 행만 추출됩니다. 이 방법은 데이터셋에 영어 문자가 섞여 있을 때 유용합니다.
출력 예시
장소 기타
0 Seoul Station 1
2 Busan Port 3
4 Gwanghwamun 5
2. 한글이 포함된 행만 추출하기
이번에는 단속장소 열에 한글이 포함된 행만 추출해보겠다. 한글을 포함하는 행을 찾으려면 [가-힣] 범위를 사용하여 한글 문자가 포함된 행을 필터링할 수 있다.
# '단속장소' 열에 한글이 포함된 행만 추출
korean_data = df[df['장소'].str.contains('[가-힣]', regex=True)]
print(korean_data)
출력 예시
장소 기타
1 서울역 2
3 인천공항 4
5 김포공항 6
3. 특정 키워드가 포함된 행만 추출하기
특정 키워드를 포함한 데이터를 추출하고 싶다면 str.contains("키워드")를 사용하여 특정 단어나 문구가 포함된 행을 필터링할 수 있다. 예를 들어 장소 열에서 공항이라는 단어가 들어간 행을 찾아보겠다.
# '장소' 열에 '공항'이 포함된 행만 추출
airport_data = df[df['장소'].str.contains('공항', regex=False)]
print(airport_data)
출력 예시
장소 기타
3 인천공항 4
5 김포공항 6
4. 영어와 한글이 동시에 포함된 행만 추출하기
때로는 영어와 한글이 모두 포함된 행을 필터링하고 싶을 수도 있다. 이 경우 [a-zA-Z]와 [가-힣]을 모두 포함하는 정규식을 사용할 수 있다.
# '장소' 열에 영어와 한글이 모두 포함된 행만 추출
english_korean_data = df[df['장소'].str.contains('(?=.*[a-zA-Z])(?=.*[가-힣])', regex=True)]
print(english_korean_data)
5. 대소문자 구분 없이 특정 문자 포함 행 추출하기
대소문자를 구분하지 않고 특정 문자를 포함한 행을 추출하고자 할 때는 case=False 옵션을 사용하면 된다.
# '장소' 열에 'station'이 포함된 행만 대소문자 구분 없이 추출
station_data = df[df['장소'].str.contains('station', case=False, regex=False)]
print(station_data)
출력예시
단속장소 기타
0 Seoul Station 1
6. 복합 조건으로 필터링하기
특정 열에 영어가 포함된 행 중에서 기타 열의 값이 특정 범위에 있는 행만 추출하고 싶다면, 조건을 결합하여 필터링할 수 있다.
# '장소'에 영어가 포함되고 '기타' 값이 10 이하인 행만 추출
filtered_data = df[(df['장소'].str.contains('[a-zA-Z]', regex=True)) & (df['기타'] <= 10)]
print(filtered_data)
이번 글에서는 pandas 라이브러리를 사용하여 특정 열에 영어, 한글, 키워드가 포함된 행을 필터링하는 다양한 방법을 소개했다. 이러한 방법을 활용하면 데이터 분석 과정에서 특정 조건을 만족하는 데이터를 빠르게 추출할 수 있다.
'tool 공부 > PYTHON' 카테고리의 다른 글
파이썬 행 개수 늘리기 (0) | 2024.07.04 |
---|---|
df.head와 print(df.head)의 차이 (0) | 2024.03.14 |
파이썬 merge 여러개 한번에 하기 (0) | 2024.03.13 |
kiwi(키위) 형태소 분석기 설치 (0) | 2024.02.20 |
파이썬 중복 처리 (1) | 2023.11.24 |