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)
작은 차이지만, 데이터 전처리나 분석 시 실수를 방지하기 위해 꼭 기억해두면 좋습니다.
'파이썬 > 데이터프레임 다루기' 카테고리의 다른 글
| Pandas에서 Timedelta 이해하기 (0) | 2025.08.31 |
|---|---|
| Pandas에서 Timedelta 다루기 (0) | 2025.08.31 |
| Python에서 strftime과 strptime 정리하기 (0) | 2025.08.31 |
| Pandas에서 다양한 날짜·시간 데이터 다루기 (0) | 2025.08.31 |
| Pandas에서 불리언 인덱싱을 더 간단하게! query() 함수 사용법 (1) | 2025.08.30 |