섹션별 상세
데이터 선택 시 라벨과 위치 중 무엇을 기준으로 할지에 따라 메서드가 달라진다. .loc는 실제 인덱스 이름이나 컬럼명을 입력으로 받아 데이터를 추출하며, .iloc는 데이터의 물리적 순서인 정수 인덱스를 사용한다. .loc['2025-01-01']처럼 날짜 라벨로 접근하는 것과 .iloc[0]처럼 첫 번째 행으로 접근하는 방식의 차이다. 이는 데이터 구조에 따라 적절한 인덱싱 전략을 선택하는 기초가 된다.
python
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의 슬라이싱 범위 포함 여부 차이를 보여주는 예시

근거
- .iloc는 정수 위치 기반 인덱싱을 수행하며 슬라이싱 시 끝점 위치를 제외한다. — Using .iloc: Integer-Based Indexing Explained 섹션 및 Slicing Rows Using .iloc 섹션
슬라이싱 연산에서 두 메서드는 서로 다른 종료 지점 처리 규칙을 가진다. .loc[start:stop]은 stop 라벨을 포함하는 반면, .iloc[start:stop]은 표준 파이썬 슬라이싱처럼 stop 위치를 제외한다. 예를 들어 .loc['A':'C']는 C를 포함하지만 .iloc[0:2]는 인덱스 2를 제외한 0, 1만 반환한다. 이러한 차이를 인지하지 못하면 데이터 추출 시 '하나 차이(off-by-one)' 오류가 발생하기 쉽다.
python
# 조건부 필터링과 열 선택 결합
# 나이가 30보다 큰 행의 'Name'부터 'Region'까지 열 추출
result = df.loc[df['Age'] > 30, 'Name':'Region'].loc를 사용하여 조건부 필터링과 특정 열 범위를 동시에 선택하는 방법
근거
- .loc는 라벨 기반 인덱싱을 수행하며 슬라이싱 시 끝점 라벨을 포함한다. — Understanding .loc and .iloc in Pandas DataFrames 섹션 및 Slicing Rows Using .loc 섹션
조건부 필터링은 주로 .loc를 통해 직관적으로 수행된다. df.loc[df['Age'] > 30]과 같이 불리언 배열을 전달하여 특정 조건을 만족하는 행을 선택할 수 있다. .iloc에서도 불리언 마스킹이 가능하지만 위치 기반이라는 특성상 라벨 기반인 .loc보다 가독성이 떨어지고 실수 가능성이 높다. 따라서 복잡한 데이터 필터링 작업에는 .loc 사용이 강력히 권장된다.
행과 열을 동시에 선택할 때 두 인덱서 모두 콤마(,)를 사용한 2차원 인덱싱을 지원한다. df.loc[행_라벨, 열_라벨] 또는 df.iloc[행_위치, 열_위치] 형식을 사용하여 특정 셀이나 서브셋을 추출한다. .loc는 'Name':'Age'와 같은 컬럼명 슬라이싱이 가능하여 코드의 의도를 명확히 전달할 수 있다. 반면 .iloc는 컬럼의 순서가 바뀌면 결과가 달라질 위험이 있으므로 주의가 필요하다.
용어 해설
- 판다스(Pandas)
- — 파이썬에서 데이터 조작과 분석을 위해 널리 사용되는 오픈소스 라이브러리이다. DataFrame이라는 표 형태의 데이터 구조를 제공하여 대규모 데이터를 효율적으로 처리할 수 있게 한다. 데이터 과학 및 머신러닝 전처리 단계에서 필수적인 도구이다.
- 데이터프레임(DataFrame)
- — 행(row)과 열(column)로 구성된 2차원 레이블 데이터 구조이다. 스프레드시트나 SQL 테이블과 유사한 형태를 가지며 다양한 타입의 데이터를 담을 수 있다. 판다스에서 데이터를 다루는 가장 기본적인 단위이다.
- 라벨 기반 인덱싱(Label-based Indexing)
- — 데이터의 실제 이름(라벨)을 사용하여 특정 행이나 열을 참조하는 방식이다. 인덱스가 문자열이나 날짜인 경우 해당 값을 직접 입력하여 데이터를 찾는다. 코드의 가독성이 높고 데이터 순서가 바뀌어도 안전하다.
- 정수 위치 기반 인덱싱(Integer Position-based Indexing)
- — 데이터가 저장된 물리적 순서(0, 1, 2...)를 기준으로 데이터를 참조하는 방식이다. 파이썬 리스트의 인덱싱과 동일한 논리를 따르며 데이터의 이름과 상관없이 위치로만 접근한다. 반복문이나 순차적 처리에 유용하다.
기술
- Pandas
- Python
- NumPy
활용 사례
- 데이터프레임 특정 행/열 추출
- 조건부 데이터 필터링
- 데이터 전처리 및 슬라이싱
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 03. 30.수집 2026. 03. 30.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
