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

Pandas에서 loc와 iloc 슬라이싱 규칙 정리

Data Jun 2025. 8. 31. 10:59

Pandas에서 데이터를 다룰 때, 인덱싱은 필수적인 작업입니다. 특히 loc와 iloc을 사용할 때 슬라이싱 규칙이 다르다는 점을 헷갈리기 쉽습니다. 이번 글에서는 두 가지의 차이를 간단하게 정리해보겠습니다.

 

loc 인덱싱: 끝 포함

loc는 레이블(label) 기반 인덱싱입니다.
따라서 슬라이스 범위를 지정할 때 끝 인덱스가 포함됩니다.

import pandas as pd

s = pd.Series([10, 20, 30, 40, 50], index=[0, 1, 2, 3, 4])

print(s.loc[1:3])

출력 결과

1    20
2    30
3    40
dtype: int64

loc[1:3] 은 index 1, 2, 3 모두 포함합니다.

 

iloc 인덱싱: 끝 제외

iloc는 정수(integer) 위치 기반 인덱싱입니다.
따라서 파이썬 리스트 슬라이싱 규칙과 동일하게 끝 인덱스는 제외됩니다.

print(s.iloc[1:3])

출력 결과

1    20
2    30
dtype: int64

iloc[1:3] 은 index 위치 1과 2까지만 포함하고, 끝(3 위치)은 제외됩니다.

 

정리

  • loc[start:end] → end 포함
  • iloc[start:end] → end 제외

즉,

  • 레이블(label) 기준으로 접근할 때는 끝을 포함 (loc)
  • 정수 위치 기준으로 접근할 때는 끝을 제외 (iloc)

작은 차이지만, 데이터 전처리나 분석 시 실수를 방지하기 위해 꼭 기억해두면 좋습니다.