pandas - [데이터 전처리] 필터링과 정렬

c.haha.e·2025년 3월 24일

pandas

목록 보기
14/17

📌 필터링과 정렬

  • 조건에 맞는 데이터만 보고 싶을 때
  • 특정 기준으로 정렬해서 순위나 최댓값/최솟값을 찾고 싶을 때
  • 데이터를 미리 정렬해서 시각화나 분석하기 편하게 만들 때

👉 필터링 (Filtering)

기본 조건 필터링

df[df['score'] >= 90]          # 점수가 90 이상인 행
df[df['gender'] == 'female']   # 성별이 여자만

여러 조건 필터링 (주의: & / | 사용, 괄호 꼭!)

df[(df['score'] >= 90) & (df['gender'] == 'female')]
df[(df['age'] < 30) | (df['city'] == '서울')]
  • and, or 대신 꼭 &, | 사용 그리고 각 조건은 괄호로 감싸기

문자열 조건

df[df['name'].str.contains('김')]         # '김'이 포함된 이름
df[df['job'].str.startswith('교')]        # '교'로 시작하는 직업
df[df['email'].str.endswith('@naver.com')] # 네이버 이메일

결측치 기반 필터링

df[df['address'].isnull()]         # 주소가 없는 행
df[df['email'].notnull()]          # 이메일이 있는 행

👉 정렬 (Sorting)

오름차순 정렬

df.sort_values(by='score')  # 기본은 오름차순

내림차순 정렬

df.sort_values(by='score', ascending=False)

여러 기준으로 정렬

df.sort_values(by=['gender', 'score'], ascending=[True, False])

👉 정렬된 결과 저장 vs 유지

목적코드
원본 유지 + 결과 확인df.sort_values(..., inplace=False) (기본값)
원본에 반영inplace=True 또는 df = df.sort_values(...)

👉 NaN 위치 조절 정렬

df.sort_values(by='score', na_position='first')  # NaN을 위로

👉 자주 하는 실수

실수설명해결 방법
조건식에 괄호 안 씀오류 발생(조건1) & (조건2) 형태로 쓰기
and / or 사용Pandas에서는 오류반드시 &, 파이프기호
정렬했는데 적용 안 됨inplace=True 안 썼거나 재할당 안 함재할당하거나 inplace=True 사용
결측치 포함된 열 정렬 시 오류NaN은 기본적으로 아래로 감na_position='first'로 조절 가능

👉 체크리스트

  • 조건문에 괄호를 정확히 썼는가?
  • &, |와 and, or을 헷갈리지 않았는가?
  • 문자열 조건은 .str. 메서드를 사용했는가?
  • 정렬 결과를 원본에 반영할지 결정했는가?
profile
기록용 블로그

0개의 댓글