빅데이터 분석기사/작업 유형 1 (pd)
데이터 검색, boolean indexing
유방울
2023. 4. 26. 21:02
Boolean indexing 사용하여 조건에 맞는 데이터 가져오기
- DataFrame.loc[조건, :]
- DataFrame[조건]
- 조건은 boolean dtype이어야 하며 행의 수와 같아야 함
- 복잡한 조건 작성
- (조건1) | (조건2) : 조건1 또는 조건2를 만족하는 데이터
- (조건1) & (조건2) : 조건1, 조건2 모두 만족하는 데이터
- ~(조건) : 조건이 거짓인 데이터
조건먼저 적고 -> 불린 데이터인지 확인하기
# [1-36] 'category'가 '음악/댄스/가수'인 채널의 subscriber TOP5를 알아봅니다.
df[df['category'] == '음악/댄스/가수'].sort_values('subscriber', ascending = False).head()
# [1-37] 'category'가 'TV/방송'인 채널의 view TOP5를 알아봅니다.
# 베이직 인덱싱 2
df[df['category'] == 'TV/방송'].sort_values('view', ascending = False).head()
# 록 인덱싱 2
df.loc[df['category'] == 'TV/방송', :].sort_values('view', ascending = False).head()
# [1-38] 'subscriber'가 30000000 (3천만) 이상인 채널을 알아봅니다.
# 베이직 인덱싱
df[df['subscriber'] >= 30000000]
# 록 인덱싱
df.loc[df['subscriber'] >= 30000000, :]
2개 조건 사용시 () 필수
& : and
| : or
# [1-39] 'video' 개수가 30000 이상 35000 이하인 채널을 알아봅니다.
# and x 엠퍼센트 & 기호 사용
# () 괄호 사용 필수
df[(df['video'] >= 30000) & (df['video'] <= 35000)]
# [1-40] 'subscriber'가 30000000 (3천만)이상 이거나,
# 'video' 개수가 50000 이상인 채널을 알아봅니다.
# df.loc[(df['subscriber'] >= 30000000) | (df['video'] >= 50000), :]
df[(df['subscriber'] >= 30000000) | (df['video'] >= 50000)]