반응형
Notice
Recent Posts
Recent Comments
Link
개발은 처음이라 개발새발
파이썬으로 필터링하기 [python/pandas] 본문
반응형
파이썬을 통해서도 엑셀과 같이 필터링이 가능한대요. 오늘 다뤄볼 것은 특정 조건식을 작성해 이를 만족하는 값들만 뽑아낼 수 있는 불린 인덱싱(boolean indexing)에 대해 알아보겠습니다. 불린(boolean)은 시리즈 객체에 어떤 조건식을 적용하면 참(True), 거짓(False)인지를 판별하는 것인데요. 이를 토대로 참인 값들만 필터링 하는 것이 불린 인덱싱입니다.
오늘도 seaborn의 'titanic'예제를 활용해 불린 인덱싱을 하는 과정을 살펴보겠습니다.
import seaborn as sns
titanic = sns.load_dataset('titanic')
# 10대 승객 찾기
mask1 = (titanic['age'] >= 10) & (titanic['age'] <20 )
df_teenage = titanic[mask1]
print(df_teenage.head(),'\n')
# 10대 미만 여성인 승객
mask2 = (titanic['age'] < 10) & (titanic['sex'] == 'female')
df_female = titanic[mask2]
print(df_female.head(),'\n')
# 10대 미만 또는 60대 이상 승객의 age, sex, alone 열만 선택
mask3 = (titanic['age'] < 10) | (titanic['age'] >= 60 )
df_under = titanic.loc[mask3,['age','sex','alone']]
print(df_under.head(),'\n')
survived pclass sex age sibsp parch fare embarked class who adult_male deck embark_town alive alone
9 1 2 female 14.0 1 0 30.0708 C Second child False NaN Cherbourg yes False
14 0 3 female 14.0 0 0 7.8542 S Third child False NaN Southampton no True
22 1 3 female 15.0 0 0 8.0292 Q Third child False NaN Queenstown yes True
27 0 1 male 19.0 3 2 263.0000 S First man True C Southampton no False
38 0 3 female 18.0 2 0 18.0000 S Third woman False NaN Southampton no False
survived pclass sex age sibsp parch fare embarked class who adult_male deck embark_town alive alone
10 1 3 female 4.0 1 1 16.7000 S Third child False G Southampton yes False
24 0 3 female 8.0 3 1 21.0750 S Third child False NaN Southampton no False
43 1 2 female 3.0 1 2 41.5792 C Second child False NaN Cherbourg yes False
58 1 2 female 5.0 1 2 27.7500 S Second child False NaN Southampton yes False
119 0 3 female 2.0 4 2 31.2750 S Third child False NaN Southampton no False
age sex alone
7 2.0 male False
10 4.0 female False
16 2.0 male False
24 8.0 female False
33 66.0 male True
네 이렇게 예제 3개를 풀어봤는데요. 10대인 승객과 10대 미만이고 여성인 승객을 찾는 조건처럼 두개의 조건이 연결된 경우, AND(&) 연산을 활용했고 "또는"의 경우는 OR(|) 연산자를 사용했는데 이렇게 불린 인덱싱을 적용한 조건문은 .loc 함수와 함께 사용해 특정 컬럼까지 추출할 수 있습니다. 이렇게 할 수 있는 이유는 불린 인덱싱이 결론적으로 지정한 조건에서 참을 가진 인덱스(index)만을 추출하는 것이기 때문에 .loc, .iloc 와 같이 특정 값을 추출하는 데에서 인덱스 역할을 할 수 있습니다. 다음 시간에는 isin() 매소드를 활용해 필터링을 하는 것을 알아보도록 하겠습니다.
반응형
'파이썬 > 판다스' 카테고리의 다른 글
파이썬 열 분리 [python/pandas] (1) | 2022.08.20 |
---|---|
isin()매소드를 활용한 필터링 [python/pandas] (0) | 2022.08.19 |
파이썬 날짜 인덱스 활용 - 시계열 데이터 활용2 [python/pandas] (0) | 2022.08.12 |
파이썬 날짜 분리 - 시계열 데이터 활용1 [python/pandas] (0) | 2022.08.11 |
Timestamp & Period 배열 [python/pandas] (0) | 2022.08.11 |