728x90
반응형
판다스 데이터프레임을 사용하여 데이터를 살펴볼 때 자주 필요한 필터링에 관한 글입니다.
판다스 라이브러리 부르고 샘플 데이터 입력하기:
import pandas as pd
data = {'name': ['Harry Potter', 'Draco Malfoy', 'Hermione Granger', 'Ron Weasley', 'Luna Lovegood'],
'age': [12, 12, 12, 12, 11],
'house': ['Gryffindor', 'Slytherin', 'Gryffindor', "Gryffindor", 'Ravenclaw'],
'grade': [80, 78, 99, 50, 60]}
df = pd.DataFrame(data)
df.head()
#1. 한 칼럼 (열)에 조건이 맞는 행 추출하기
'house' 행 값이 'Gryffindor'와 일치(==)하는 행 추출하는 방식입니다.
# 조건이 맞는 행 추출하기
df.loc[df['house'] == 'Gryffindor']
반대로 그린핀도르가 아닌 친구들을 추출하고 싶을 경우 '!=' operator를 사용하면 됩니다.
df.loc[df['house'] != 'Gryffindor']
+ 그 외 파이썬 Operators
#2. 한 열에서 필터링 조건이 하나 이상일 때
한 열에서 다양한 값을 사용하여 필터링할 경우, 리스트와 isin()을 통해 필터링 할 수 있습니다.
houses = ['Gryffindor', 'Ravenclaw']
df.loc[df['house'].isin(houses)]
#또는 바로
df.loc[df['house'].isin(['Gryffindor', 'Ravenclaw'])]
tilde '~'를 사용하여 반대인 경우도 쉽게 출력할 수 있습니다.
df.loc[~df['house'].isin(houses)]
#3. 여러 가지 조건이 있을 경우
여러 열에서 다양한 조건으로 필터링할 경우 파이썬의 연산자를 사용하여 필터링이 가능합니다.
11살이며 기숙사가 그리핀도르나 래번클로인 이 두 가지 조건을 모두 충족하는 행 추출하기
df.loc[(df['age'] == 11) & df['house'].isin(['Gryffindor', 'Ravenclaw'])]
Or 기호인 '|' 을 이용하여 두 가지 조건 중 하나라도 맞는 행 추출하기
점수가 80점 이하이거나 기숙사가 그리핀도르가 아닌 친구들
df.loc[(df['grade'] < 80) | (df['house'] != 'Gryffindor')]
728x90
반응형
'ᐧ༚̮ᐧ Data Science | AI > Python' 카테고리의 다른 글
[파이썬] for문 사용하기 (반복문, range, 예제) (0) | 2022.10.06 |
---|---|
[파이썬] 🥒피클 pickle - 파일 저장하기, 불러오기 (1) | 2022.10.05 |
[파이썬] 그래프 크기 설정하기 (figsize) (0) | 2022.08.17 |
[파이썬] 파이 차트 그리기 (feat. matplotlib) (0) | 2021.11.04 |
[파이썬/matplotlib] 선 그래프 그리기 + 테마 (스타일 시트) 설정 (0) | 2021.09.27 |