반응형
Notice
Recent Posts
Recent Comments
Link
개발은 처음이라 개발새발
isin()매소드를 활용한 필터링 [python/pandas] 본문
반응형
데이터프레임의 열에 isin()매소드를 적용하면 특정 값을 가진 행들을 따로 추출할 수 있습니다. 이때 isin() 매소드 안에는 데이터프레임에서 추출하려는 값들을 리스트로 해서 입력하면 됩니다. 그렇다면 바로 예제를 통해 풀어보도록 하겠습니다. 먼저 비교를 위해 boolean indexing을 먼저 적어보도록 하겠습니다.
import seaborn as sns
titanic = sns.load_dataset('titanic')
#함께 탑승한 형제 또는 배우자의 수가 3, 4, 5인 승객만 추출 - 불린 인덱싱
mask3 = titanic['sibsp'] == 3
mask4 = titanic['sibsp'] == 4
mask5 = titanic['sibsp'] == 5
df_boolean = titanic[mask3|mask4|mask5]
print(df_boolean.head(10),'\n')
survived pclass sex age sibsp parch fare embarked class who adult_male deck embark_town alive alone
7 0 3 male 2.0 3 1 21.0750 S Third child False NaN Southampton no False
16 0 3 male 2.0 4 1 29.1250 Q Third child False NaN Queenstown no False
24 0 3 female 8.0 3 1 21.0750 S Third child False NaN Southampton no False
27 0 1 male 19.0 3 2 263.0000 S First man True C Southampton no False
50 0 3 male 7.0 4 1 39.6875 S Third child False NaN Southampton no False
59 0 3 male 11.0 5 2 46.9000 S Third child False NaN Southampton no False
63 0 3 male 4.0 3 2 27.9000 S Third child False NaN Southampton no False
68 1 3 female 17.0 4 2 7.9250 S Third woman False NaN Southampton yes False
71 0 3 female 16.0 5 2 46.9000 S Third woman False NaN Southampton no False
85 1 3 female 33.0 3 0 15.8500 S Third woman False NaN Southampton yes False
네 그러면 이제 isin()매소드를 활용해 같은 예제를 한번 만들어 보겠습니다.
#isin()매소드를 활용해 동일한 조건으로 추출
isin_filter = titanic['sibsp'].isin([3,4,5])
df_isin = titanic[isin_filter]
print(df_isin.head(10),'\n')
survived pclass sex age sibsp parch fare embarked class who adult_male deck embark_town alive alone
7 0 3 male 2.0 3 1 21.0750 S Third child False NaN Southampton no False
16 0 3 male 2.0 4 1 29.1250 Q Third child False NaN Queenstown no False
24 0 3 female 8.0 3 1 21.0750 S Third child False NaN Southampton no False
27 0 1 male 19.0 3 2 263.0000 S First man True C Southampton no False
50 0 3 male 7.0 4 1 39.6875 S Third child False NaN Southampton no False
59 0 3 male 11.0 5 2 46.9000 S Third child False NaN Southampton no False
63 0 3 male 4.0 3 2 27.9000 S Third child False NaN Southampton no False
68 1 3 female 17.0 4 2 7.9250 S Third woman False NaN Southampton yes False
71 0 3 female 16.0 5 2 46.9000 S Third woman False NaN Southampton no False
85 1 3 female 33.0 3 0 15.8500 S Third woman False NaN Southampton yes False
네 이렇게 불린 인덱싱으로 처리한 값과 동일하게 나오는 것을 확인할 수 있습니다. 하나의 열에서 특정 여러 값을 추출할 때는 불린 인덱싱도 좋지만 이번 코딩을 살펴보니 좀 더 간략하게 만들기에는 isin()매소드가 더 간단하는 것을 확인할 수 있었습니다.
반응형
'파이썬 > 판다스' 카테고리의 다른 글
concat() 함수로 여러 데이터프레임 합치기 [python/pandas] (0) | 2022.08.21 |
---|---|
파이썬 열 분리 [python/pandas] (1) | 2022.08.20 |
파이썬으로 필터링하기 [python/pandas] (0) | 2022.08.15 |
파이썬 날짜 인덱스 활용 - 시계열 데이터 활용2 [python/pandas] (0) | 2022.08.12 |
파이썬 날짜 분리 - 시계열 데이터 활용1 [python/pandas] (0) | 2022.08.11 |