Python

[파이썬] 특정 조건에 해당하는 컬럼 선택 - 리스트 컴프리핸션, 정규식

weweGH 2025. 7. 9. 09:00
반응형

특정 조건 컬럼 선택
특정 조건 컬럼 선택


특정 조건에 해당하는 컬럼 선택 - 리스트 컴프리핸션, 정규식


들어가며


데이터 분석을 할 때, 데이터프레임에서 특정 조건에 해당하는 컬럼을 선택해야하는 상황이 종종 발생합니다. 변수의 개수가 적을 때는 직접 지정해도 괜찮지만, 변수가 많은 데이터프레임의 경우 모든 컬럼을 나열하는 방식은 코드의 가독성을 저하시킵니다.

이 글에서는 데이터프레임에서 특정 조건에 해당하는 컬럼을 선택하는 방법을 리스트 컴프리핸션 기반 컬럼 필터링정규표현식 기반 컬럼 필터링 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()

정규 표현식
정규 표현식


반응형