Pandas
필터링
김천종
2022. 11. 9. 22:36
반응형
데이터프레임의 데이터 중에서 특정한 조건을 만족하는 원소만 따로 추출하는 것
## 불린 인덱싱 ##
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
### 필터링 ###
## 불린 인덱싱 ##
# 각 원소에 대해 참, 거짓을 판별해서 불린 값으로
# 구성된 시리즈를 반환함, 이때 참인 데이터만 따로 선택
# 조건식(<, >, == 등) 사용 #
titanic = sns.load_dataset('titanic')
mask1 = (titanic.age >=10) & (titanic.age < 20)
# 나이가 10이상이고 20미만인 데이터 선택, 불린(참, 거짓) 시리즈
df_10old = titanic.loc[mask1, :]
# 행이 mask1이고 열이 전체인 데이터프레임 만들기
print(df_10old.head(3))
'''
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
'''
# 나이가 10대인 데이터만 모인 데이터프레임
|
cs |
## isin() 메소드 ##
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
## 특정 값을 가진 행 추출(isin()) ##
# isin() 메소드 사용 #
# isin() 괄호 안에 원하는 값을 넣어서 필터링한다 #
isin_filter = titanic['sibsp'].isin([3, 4, 5])
print(isin_filter)
# 'sibsp' 열에 3, 4, 5 값을 가진 행을 선택, 불린 시리즈로 반환
df_isin = titanic[isin_filter]
# 불린 시리즈를 만족하는 데이터프레임 만들기
print(df_isin.head())
'''
mask2 = (titanic.sibsp ==3)|(titanic.sibsp ==4)|(titanic.sibsp ==5)
df_1 = titanic.loc[mask2, :]
print(df_1.head())
'''
# isin() 메소드를 사용하지 않고 불린 인덱싱을 사용해서 구현 (같은 결과)
|
cs |
반응형