본문 바로가기
Pandas

[Pandas] 데이터 선택과 인덱싱 함수 정리 (loc, iloc, at, iat 등)

by PredictLab | 데이터 예측 연구소 2025. 4. 16.

1. 개요

Pandas에서 데이터를 선택하고 조작하는 기능은 분석의 핵심입니다. 이번 글에서는 loc, iloc, at, iat를 중심으로 다양한 인덱싱 방법을 예제를 통해 살펴봅니다.

2. 내용

2-1. [] 인덱싱

가장 기본적인 인덱싱 방법은 대괄호 []를 이용하는 것입니다. 보통 컬럼명을 지정하거나, 행 슬라이싱에 사용됩니다.

import pandas as pd

df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
})

# 열 선택
print(df['Name'])
0     Alice
1       Bob
2    Charlie
Name: Name, dtype: object

여러 열 선택

print(df[['Name', 'Age']])
      Name  Age
0    Alice   25
1      Bob   30
2  Charlie   35

2-2. loc[]

loc[]는 라벨(이름) 기반으로 행과 열을 선택합니다. df.loc[행, 열] 형식이며, 슬라이싱 시 마지막 인덱스도 포함됩니다.

# 행 선택
print(df.loc[0])
Name    Alice
Age        25
Name: 0, dtype: object
# 행과 열 동시 선택
print(df.loc[0, 'Name'])
'Alice'

2-3. iloc[]

iloc[]는 정수 인덱스를 기반으로 데이터를 선택합니다. df.iloc[행번호, 열번호] 형식이며, 슬라이싱 시 파이썬 기본 규칙(끝 포함 안 됨)을 따릅니다.

# 첫 번째 행
print(df.iloc[0])
Name    Alice
Age        25
Name: 0, dtype: object
# 두 번째 행의 두 번째 열
print(df.iloc[1, 1])
30

2-4. at[]

at[]은 단일 요소 접근을 위한 가장 빠른 방식입니다. 라벨 기반 접근만 가능하며, 스칼라(하나의 값)만 반환합니다.

print(df.at[0, 'Name'])
'Alice'

2-5. iat[]

iat[]는 정수 인덱스를 사용한 단일 값 접근 방식입니다. iloc[]과 유사하지만 단 하나의 요소만 조회할 때 사용합니다.

print(df.iat[0, 0])
'Alice'

3. 결론

이번 글에서는 Pandas에서 데이터를 선택하고 접근하는 다양한 방법을 정리했습니다. lociloc는 가장 기본적인 접근 방법이며, atiat는 성능이 중요한 상황에서 단일 요소에 접근할 때 유용합니다. 각 함수의 차이점을 정확히 이해하고, 상황에 맞게 사용하는 것이 중요합니다.