파이썬/데이터프레임 다루기

Pandas에서 loc과 iloc의 차이

Data Jun 2025. 8. 31. 13:52

Pandas에서 데이터를 인덱싱할 때 자주 쓰는 방법이 바로 loc과 iloc입니다. 두 메서드는 비슷해 보이지만, 기준이 다르기 때문에 결과도 달라집니다.

 

loc: 라벨(label) 기반 인덱싱

loc은 인덱스 라벨 이름을 기준으로 데이터를 가져옵니다.

import pandas as pd

df = pd.DataFrame({"val": range(1, 11)}, index=range(1, 11))

print(df.loc[2])

출력

val    2
Name: 2, dtype: int64

 

iloc: 위치(position) 기반 인덱싱

iloc은 정수 위치를 기준으로 데이터를 가져옵니다. 파이썬 리스트 인덱싱과 동일하게 0부터 시작합니다.

print(df.iloc[2])

출력

val    3
Name: 3, dtype: int64

**세 번째 행(위치 2, 라벨 3)**을 반환합니다.

 

한 줄 정리

  • loc[2] → 라벨 2인 행 반환
  • iloc[2] → 세 번째 행 반환

📌 왜 이렇게 다를까?
loc은 라벨(label)을 기반으로, iloc은 위치(position)를 기반으로 동작하기 때문이다.

 

실무에서 자주 하는 실수는 iloc을 라벨처럼 착각하는 경우예요. 기억하기 쉽게:

  • loc = label
  • iloc = index location