핵심 요약
Pandas DataFrame에서 데이터를 효율적으로 선택하기 위한 두 가지 핵심 인덱서인 .loc와 .iloc의 차이점을 다룬다. .loc는 행과 열의 이름을 사용하는 라벨 기반 방식이며, .iloc는 0부터 시작하는 정수 위치를 사용하는 방식이다. 두 메서드는 슬라이싱 범위 포함 여부와 조건부 필터링 지원 방식에서 뚜렷한 차이를 보인다. 실무에서는 가독성을 위해 라벨 기반인 .loc를 권장하며, 위치 기반 처리가 필요한 경우에만 .iloc를 사용하는 것이 좋다.
배경
Python 기초 문법, Pandas 라이브러리 설치 및 기본 DataFrame 개념
대상 독자
Pandas를 처음 접하거나 데이터 선택 메서드의 차이를 명확히 이해하고 싶은 데이터 분석 입문자
의미 / 영향
이 가이드는 데이터 분석의 가장 기초가 되는 데이터 선택 과정을 명확히 하여, 초보 개발자들이 흔히 겪는 인덱싱 오류를 줄여준다. 특히 대규모 데이터셋에서 정확한 행과 열을 추출하는 능력을 배양함으로써 데이터 전처리 단계의 신뢰성을 높인다.
섹션별 상세
import pandas as pd
import numpy as np
dates = pd.date_range(start="2025-01-01", periods=40)
df = pd.DataFrame({"value": np.arange(40)}, index=dates)
# .loc: 라벨 기반 슬라이싱 (끝점 포함)
print(df.loc["2025-01-01":"2025-01-02"])
# .iloc: 위치 기반 슬라이싱 (끝점 제외)
print(df.iloc[0:2]).loc와 .iloc의 슬라이싱 범위 포함 여부 차이를 보여주는 예시

# 조건부 필터링과 열 선택 결합
# 나이가 30보다 큰 행의 'Name'부터 'Region'까지 열 추출
result = df.loc[df['Age'] > 30, 'Name':'Region'].loc를 사용하여 조건부 필터링과 특정 열 범위를 동시에 선택하는 방법
실무 Takeaway
- 데이터의 의미론적 가독성과 유지보수를 위해 컬럼명이나 인덱스 라벨이 있는 경우 .loc를 우선적으로 사용한다.
- 슬라이싱 시 .loc는 끝점을 포함하고 .iloc는 제외한다는 점을 명확히 구분하여 데이터 누락이나 초과를 방지한다.
- 정수형 인덱스를 가진 데이터프레임에서 .loc[0]은 라벨 '0'을 찾고 .iloc[0]은 첫 번째 행을 찾으므로 혼동하지 않도록 주의한다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.