반응형

특정 조건에 해당하는 컬럼 선택 - 리스트 컴프리핸션, 정규식
들어가며
데이터 분석을 할 때, 데이터프레임에서 특정 조건에 해당하는 컬럼을 선택해야하는 상황이 종종 발생합니다. 변수의 개수가 적을 때는 직접 지정해도 괜찮지만, 변수가 많은 데이터프레임의 경우 모든 컬럼을 나열하는 방식은 코드의 가독성을 저하시킵니다.
이 글에서는 데이터프레임에서 특정 조건에 해당하는 컬럼을 선택하는 방법을 리스트 컴프리핸션 기반 컬럼 필터링과 정규표현식 기반 컬럼 필터링 2가지로 나누어 소개합니다.
예제 데이터프레임
예제로 활용할 데이터프레임은 다음과 같습니다. id, uid, vid로 시작하는 컬럼을 3개씩 생성하고, 랜덤으로 값을 생성했습니다.

리스트 컴프리핸션 기반 컬럼 필터링
첫 번째 방법은 리스트 컴프리핸션을 기반으로 한 컬럼 필터링입니다. startswith 메서드와 리스트 컴프리핸션을 활용합니다.
위의 예제 데이터프레임에서 id 또는 uid로 시작하는 컬럼을 선택하는 방법은 다음과 같습니다. 이 외에 특정 접미사로 시작하는 경우, startswith 대신 endswith를 사용하면 됩니다.
df_cols_i = [col for col in df.columns if col.startswith(('id_', 'uid_'))]
df[df_cols_i].head()

반응형
정규 표현식 기반 컬럼 필터링
두 번째 방법은 정규 표현식을 기반으로 한 컬럼 필터링입니다. 정규 표현식은 낯설지만, 패턴이 복잡할수록 훨씬 유리합니다. 데이터 전처리 단계에서 매우 유용한 방법으로, 유연하고 확장성있는 컬럼 선택이 가능합니다.
위의 예제 데이터프레임에서 uid 또는 vid로 시작하는 컬럼을 선택하는 방법은 다음과 같습니다. 정규식 중 '^'는 '시작하는'을 의미합니다.
df_cols_ii = df.filter(regex='^(uid_|vid_)').columns.tolist()
df[df_cols_ii].head()

반응형
'Python' 카테고리의 다른 글
| [파이썬] MongoDB JSON 데이터 import 및 기본 쿼리 - pymongo (3) | 2025.09.08 |
|---|---|
| [파이썬] bokeh를 활용한 인터랙티브 시각화 기초 - 꺾은선, 산점도, 막대 그래프 (0) | 2025.07.16 |
| [파이썬] 벌집 Hexbin 그래프 시각화와 Plotly 대체 방법: matplotlib vs plotly (2) | 2025.07.04 |
| [파이썬] 구글 제미나이 Gemini API 활용 방법 - API 키 발급, 예제 (4) | 2025.06.27 |
| [파이썬] 링크 공유를 위한 QR코드 생성, 글자/이미지 삽입 - qrcode (4) | 2025.06.17 |