tool 공부/PYTHON

Python 특정 문자 포함 행 추출하기

Zziii 2024. 11. 9. 21:11
728x90
반응형

데이터프레임에서 특정 문자 포함 행 추출하기

데이터 분석을 하다 보면 데이터의 특정 열에서 영어 또는 한글이 포함된 행만 추출하거나, 특정 키워드가 들어간 행을 따로 가져와야 할 때가 많다. 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 라이브러리를 사용하여 특정 열에 영어, 한글, 키워드가 포함된 행을 필터링하는 다양한 방법을 소개했다. 이러한 방법을 활용하면 데이터 분석 과정에서 특정 조건을 만족하는 데이터를 빠르게 추출할 수 있다.

 

728x90
반응형

'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
let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });