Python/Pandas

Pandas에서 행과 열 선택: loc[], iloc[], at[], iat[]

임베디드 친구 2025. 10. 9. 21:29
반응형

Pandas에서 행과 열 선택: loc[], iloc[], at[], iat[]

데이터 분석에서 특정 행과 열을 선택하는 것은 필수적인 과정입니다. Pandas에서는 loc[], iloc[], at[], iat[]을 제공하여 원하는 데이터를 효율적으로 선택할 수 있습니다. 이번 포스팅에서는 각 방법의 차이점을 예제와 함께 설명하겠습니다.

1. 샘플 데이터 생성

아래의 코드를 실행하여 샘플 DataFrame을 생성하겠습니다.

import pandas as pd

# 샘플 데이터 생성
data = {
    "이름": ["김철수", "이영희", "박민준", "최다연", "정우성"],
    "나이": [25, 30, 22, 27, 35],
    "성별": ["남", "여", "남", "여", "남"],
    "점수": [90, 85, 88, 92, 95]
}

# DataFrame 생성
df = pd.DataFrame(data, index=["A", "B", "C", "D", "E"])
print(df)

위의 코드를 실행하면 다음과 같은 DataFrame이 생성됩니다.

    이름  나이 성별  점수
A  김철수  25  남  90
B  이영희  30  여  85
C  박민준  22  남  88
D  최다연  27  여  92
E  정우성  35  남  95

2. loc[]을 사용한 라벨 기반 인덱싱

loc[]는 행과 열의 라벨을 사용하여 데이터를 선택할 때 사용됩니다.

특정 행 선택

# 'B' 인덱스의 데이터 선택
print(df.loc["B"])

출력 결과:

이름    이영희
나이      30
성별       여
점수      85
Name: B, dtype: object

특정 열 선택

# '이름' 열 선택
print(df.loc[:, "이름"])

출력 결과:

A    김철수
B    이영희
C    박민준
D    최다연
E    정우성
Name: 이름, dtype: object

특정 행과 열 선택

# 'B' 행과 '이름' 열 선택
print(df.loc["B", "이름"])

출력 결과:

이영희

여러 개의 행과 열 선택

# 'B'와 'D' 행에서 '이름'과 '점수' 열 선택
print(df.loc[["B", "D"], ["이름", "점수"]])

출력 결과:

    이름  점수
B  이영희  85
D  최다연  92

3. iloc[]을 사용한 위치 기반 인덱싱

iloc[]은 정수형 인덱스를 사용하여 데이터를 선택합니다.

특정 행 선택

# 첫 번째 행 선택
print(df.iloc[0])

출력 결과:

이름    김철수
나이      25
성별       남
점수      90
Name: A, dtype: object

특정 열 선택

# 두 번째 열 선택 (나이)
print(df.iloc[:, 1])

출력 결과:

A    25
B    30
C    22
D    27
E    35
Name: 나이, dtype: int64

특정 행과 열 선택

# 첫 번째 행의 두 번째 열 선택
print(df.iloc[0, 1])

출력 결과:

25

여러 개의 행과 열 선택

# 1~3번째 행과 0~2번째 열 선택
print(df.iloc[1:4, 0:3])

출력 결과:

    이름  나이 성별
B  이영희  30  여
C  박민준  22  남
D  최다연  27  여

4. at[]을 사용한 단일 값 선택

at[]은 라벨 기반 인덱싱에서 단일 값을 빠르게 선택할 때 사용됩니다.

# 'C' 행과 '이름' 열의 값 선택
print(df.at["C", "이름"])

출력 결과:

박민준

5. iat[]을 사용한 위치 기반 단일 값 선택

iat[]은 정수 인덱스를 사용하여 단일 값을 빠르게 선택할 때 사용됩니다.

# 2번째 행과 0번째 열의 값 선택
print(df.iat[2, 0])

출력 결과:

박민준

6. 각 방법의 비교

방법 설명 인덱싱 방식 주요 용도
loc[] 라벨 기반 선택 문자열 라벨 행과 열을 라벨로 선택
iloc[] 위치 기반 선택 정수 인덱스 행과 열을 정수로 선택
at[] 라벨 기반 단일 값 선택 문자열 라벨 단일 값 접근 (빠름)
iat[] 위치 기반 단일 값 선택 정수 인덱스 단일 값 접근 (빠름)

7. 정리

  • loc[]iloc[]은 여러 개의 행과 열을 선택할 때 사용됩니다.
  • at[]iat[]은 단일 값을 빠르게 선택할 때 사용됩니다.
  • 라벨 기반 인덱싱을 사용할 때는 loc[]at[]을, 위치 기반 인덱싱을 사용할 때는 iloc[]iat[]을 사용하면 됩니다.

이번 포스팅에서는 Pandas에서 데이터를 선택하는 다양한 방법을 살펴보았습니다. 이를 적절히 활용하면 데이터 분석을 더욱 효율적으로 수행할 수 있습니다.

반응형