728x90
반응형
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 남 952. 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 최다연 923. 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 다중 인덱스 사용 (set_index(), reset_index()) (0) | 2025.10.11 |
|---|---|
| Pandas에서 조건부 필터링 (Conditional Filtering) (0) | 2025.10.10 |
| Pandas 데이터 타입 변환 (astype()) - Pandas 데이터 변환과 가공 (0) | 2025.10.08 |
| Pandas 날짜 데이터 처리 (to_datetime(), dt 속성 활용) (0) | 2025.10.07 |
| Pandas에서 문자열 데이터 다루기: str.contains(), str.replace() (0) | 2025.10.06 |