하파와 데이터

[빅분기] 실기 1유형- loc와 iloc 실습해보기! 본문

자격증/DATA

[빅분기] 실기 1유형- loc와 iloc 실습해보기!

hhpp 2024. 11. 27. 17:07

오늘은 앞서 배운 loc와 iloc 관련 문제를 실습을 해보자!! 

 

우선 문제가 어렵지 않으니 어서어서 해보자!! 

 

0. 전제

jupyter notebook이 실행된 위치 내 data폴더가 있고, 그 안에 iris.csv 파일이 존재함

 

Q) 행이 5 이상 10 미만이고, 컬럼이 sepal_width, petal_width, variety인 데이터 추출하기

import pandas as pd

df = pd.read_csv('data/iris.csv')

# loc에서 행 범위는 마지막 값을 포함한다는 걸 잊지 말자! 
df.loc[5:9,['sepal_width', 'petal_width','variety']]

Q) 'petal_width'<0.2 인 데이터들 가운데 'sepal_length', 'variety'를 추출하시오

import pandas as pd

df = pd.read_csv('data/iris.csv')

df.loc[df['petal_width'] < 0.2, ['sepal_length', 'variety']]

Q) 'veriety' = 'Setosa' 이며, 'sepal_length' > 5.5인 데이터를 추출하시오

import pandas as pd

df = pd.read_csv('data/iris.csv')

# 2개의 조건을 &로 처리
df.loc[(df['variety'] == 'Setosa') & (df['sepal_length'] > 5.5)]  # 열은 아예 안적어도 가능

50개의 Setosa 데이터 중, sepal_length가 5.5 초과인 데이터는 14, 15, 18행 3개가 전부이다. 

 

Q) 'variety' == 'Setosa' 일때, 'sepal_length', 'petal_length', 'variety'  데이터를 추출하시오

# 이는 거의 2번문제
# 'petal_width' < 0.2 이고, 컬럼이 'sepal_length', 'variety인 데이터를 추출하세요.' 
# 이것과 동일하다

import pandas as pd

df = pd.read_csv('data/iris.csv')

df.loc[df['variety']== 'Setosa', ['sepal_length', 'petal_length', 'variety']]

Q) 행이 10이상 14미만, 컬럼이 0이상 3미만인 데이터를 추출하시오

# 이건 숫자로만 조건을 준 걸 보아서 iloc를 써야겠다고 생각해야한다. 

import pandas as pd

df = pd.read_csv('data/iris.csv')

# loc와 달리, iloc는 python처럼 범위의 마지막 값을 포함하지 않는다! 
df.iloc[10:14,0:3]

 

Q) 0이상 10미만 행, 컬럼은 1,2, 4 인 데이터를 추출하시오

# 숫자로만 주어진 iloc!! 

import pandas as pd

df = pd.read_csv('data/iris.csv')

# 특정 위치가 필요할땐, 리스트 형태로 원하는 것만 넣어버리자! 
df.iloc[0:10,[1,2,4]]

 

이정도로 loc와 iloc를 사용할 줄 안다면, 

다 된게 아닐까?? 하하하

반응형