BackEnd/파이썬
🐼 Pandas의 iloc vs loc 완벽 정리: 실무 예제로 이해하기
bobo12
2025. 6. 7. 12:45
728x90
데이터 분석이나 머신러닝을 하다 보면 pandas의 iloc과 loc을 자주 마주치게 됩니다.
하지만 처음에는 이 두 개념이 헷갈릴 수 있습니다. 이 글에서는 차이점과 사용법을 실전 예제 중심으로 정리해볼게요!
✅ iloc vs loc 차이 한눈에 보기
항목 iloc loc
항목 | iloc | loc |
의미 | index-location | label-location |
기준 | 정수 인덱스 | 레이블(이름) |
사용 방식 | 위치 기반 | 이름 기반 |
슬라이싱 끝 포함 여부 | 포함하지 않음 | 포함함 |
📌 예제 데이터프레임 생성
import pandas as pd
df = pd.DataFrame({
'이름': ['철수', '영희', '민수'],
'나이': [23, 25, 21],
'성별': ['남', '여', '남']
}, index=['a', 'b', 'c'])
🔹 iloc 사용법 (정수 기반 인덱싱)
▶ 행 선택
df.iloc[0] # 첫 번째 행 (Series)
df.iloc[[0, 2]] # 0번, 2번 행 (DataFrame)
df.iloc[0:2] # 0 ~ 1번 행 (슬라이싱)
▶ 열 선택
df.iloc[:, 0] # 첫 번째 열
df.iloc[:, [0, 2]] # 첫 번째, 세 번째 열
▶ 특정 값 선택
df.iloc[1, 2] # 1번 행, 2번 열 => '여'
🔸 loc 사용법 (레이블 기반 인덱싱)
▶ 행 선택
df.loc['a'] # 'a' 라벨을 가진 행
df.loc[['a', 'c']] # 'a', 'c' 라벨 행
▶ 열 선택
df.loc[:, '이름'] # '이름' 열
df.loc[:, ['이름', '성별']] # 여러 열 선택
▶ 특정 값 선택
df.loc['b', '성별'] # 'b'행, '성별' 열 => '여'
🧠 실무 꿀팁: 자주 쓰는 패턴
# 조건에 따라 필터링 후 컬럼 선택
df[df['성별'] == '남'].loc[:, '이름']
# iloc으로 마지막 행 선택
df.iloc[-1]
# 여러 열만 선택
df.loc[:, ['이름', '나이']]
🚨 주의할 점
- iloc에는 정수만 사용 가능, loc에는 레이블만 사용 가능
- 슬라이싱할 때 iloc은 끝 미포함, loc은 끝 포함
- 잘못된 타입을 쓰면 KeyError, IndexError 발생
📚 마무리
- 인덱스를 모를 때 : loc
- 위치로 처리하고 싶을 때 : iloc
- 리스트 슬라이싱처럼 쓰고 싶을 때 : iloc
iloc과 loc은 pandas의 기초이자 핵심입니다.
헷갈릴 땐 iloc은 숫자, loc은 이름만 기억하세요!
728x90