반응형
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에서 데이터를 선택하는 다양한 방법을 살펴보았습니다. 이를 적절히 활용하면 데이터 분석을 더욱 효율적으로 수행할 수 있습니다.
반응형
'Python > Pandas' 카테고리의 다른 글
Pandas 데이터 타입 변환 (astype()) - Pandas 데이터 변환과 가공 (0) | 2025.10.08 |
---|---|
Pandas 날짜 데이터 처리 (to_datetime(), dt 속성 활용) (0) | 2025.10.07 |
Pandas에서 문자열 데이터 다루기: str.contains(), str.replace() (0) | 2025.10.06 |
Pandas 컬럼 추가, 삭제 및 데이터 수정하기 (0) | 2025.10.05 |
Pandas 데이터 정렬 및 필터링 (sort_values(), query()) (0) | 2025.10.04 |