데이터 분석/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(['장화','치유감소']))]

▶ 괄호를 활용하여 우선순위 잘 구분하기