데이터 분석/Python - pandas
[실습] 조건 활용 인덱싱 (필터링) : LOL 아이템
toraa
2025. 1. 9. 15:16
lol_item.csv 파일에서 다음 작업 수행
1. buy_price가 500 이상인 데이터만 인덱싱
내 코드>
import pandas as pd
df_lol=pd.read_csv('data/lol_item.csv')
greater = df_lol['buy_price'] > 500
df_lol[greater]
풀이 코드>
price500 = df_lol['buy_price']>=500
df_lol[price500]
▶ 이상일때는 >가 아닌 >= 사용하기
2. 태그의 고유 항목 출력
df_lol['태그'].unique() #시리즈로 가져오기
array(['장화', '마나재생', '체력재생', '체력', '치명타피해', '마법피해', '마나', '방어력', '마법저항',
'공격', '생명력 흡수', '공격속도', '주문 피해', '소모품', '비스킷', '서포트', '활성', '비활성',
'방어', '치유감소', '방어구관통', '재사용 대기시간 감소', '이동속도', '공격격', '장신구', '공허',
'체력력'], dtype=object)
3. 태그가 '장화', '치유감소'인 (isin() 활용) 데이터 인덱싱
hd = df_lol['태그'].isin(['장화', '치유감소']) #시리즈, isin[bool시리즈]
df_lol[hd]
4. 1.과 3.를 동시에 만족하는 데이터 인덱싱
filters = greater & hd
df_ft = df_slp[filters]
df_ft
풀이코드>
i1 = df_lol['buy_price'] >= 500
i2 = df_lol['태그'].isin(['장화', '치유감소'])
df_lol[i1&i2]
5. 1.과 3.를 둘중 하나라도 만족하는 데이터 인덱싱
내 코드>
filters2 = greater|hd
df_ft2 = df_lol[filters2]
df_ft2
풀이 코드>
df_lol[(df_lol['buy_price']>=500 | df_lol['태그'].isin(['장화','치유감소']))]
▶ 괄호를 활용하여 우선순위 잘 구분하기