본문 바로가기
Python/Pandas & numpy

판다스 : loc와 iloc

by Mr.DonyStark 2024. 1. 31.

□ .loc와 .iloc는 데이터프레임에서 특정 행이나 열을 선택하기 위한 방법임

  ○ .loc : 인덱스 번호를 사용하지 않고 인덱스 명 또는 필드명으로 데이터를 조회하는 방법

  ○ .iloc : 인덱스 번호를 활용하여 데이터를 조회하는 방법

  ※ .loc 또는 .iloc[ : , : ] ▶ 행과 열 부분에 : 있다면 모든 데이터 즉, 모든 행/열을 의미

#라이브러리 호출
import pandas as pd  #라이브러리 약어지정

# csv 파일 불러오기
# ┗ pandas.read_csv(경로, sept='\t')
ex_df = pd.read_csv('경로', sep='\t') #data폴더에서 tsv파일 호출

#loc
ex_df.loc[:, 'country'] #country 명을 활용해 해당 데이터만 조회
ex_df.loc[:, ['country','continent']] # couuntry, continent 명을 활용해 해당 데이터만 조회
#iloc
ex_df.iloc[4,1] #인덱스기준 4번인 행을 뽑대 필드번호 1 인 데이터 조회
ex_df.iloc[0:10,1:3] #인덱스기준 0부터 9까지인 행을 뽑대 필드 1,2인 데이터 조회
ex_df.iloc[[0,99,999]] #인덱스기준 0, 99, 999번인 특정 행을 뽑아 데이터 조회

#예제
#(1)모든행을 뽑대 열이 year,pop인 데이터 조회
ex_df.loc[:,['year','pop']] #loc를 활용하였으니 컬럼명으로 지정
#(2) 3, 6, 9행을 뽑대 열이 year,pop,gdpercap인것
ex_df.iloc[[3,6,9],[2,4,-1]] #iloc를 활용하였으니 인덱스 번호로 지정
#(3) range와 list, iloc를 활용하여 데이터 조회
#range와 list로 데이터화 후 복수개+특정 행과 열을 조회
a = list(range(10,100,10))
b = list(range(2,4))
ex_df.iloc[a,b]

c = list(range(100,200,10))
ex_df.loc[c, ['country','gdpPercap']]