loc 소개
loc
는 Pandas에서 라벨 기반으로 데이터프레임의 행과 열을 선택할 수 있는 방법입니다.
이는 열 이름이나 행 인덱스를 사용하여 직접 지정할 수 있다는 점에서 iloc[]과 다릅니다.
사용법1 - 기본
import pandas as pd
# 예제 데이터프레임 생성
data = {'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, 40, 50],
'C': ['a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3', 'row4', 'row5'])
# 특정 행 선택 (라벨 기반)
print(df.loc['row1'])
출력 결과
A 1
B 10
C a
Name: row1, dtype: object
사용법 2 - 행과 열 동시 선택하기
# 여러 행과 여러 열 선택
print(df.loc[['row2', 'row4'], ['A', 'C']])
출력 결과
A C
row2 2 b
row4 4 d
사용법 3 - 조건을 사용하여 선택하기
# B 열의 값이 30 이상인 행 선택
filtered_df = df.loc[df['B'] >= 30]
print(filtered_df)
출력 결과
A B C
row3 3 30 c
row4 4 40 d
row5 5 50 e
사용법 4 - 특정 열 값 수정하기
# row2의 A 열 값 수정
df.loc['row2', 'A'] = 99
print(df)
출력 결과
A B C
row1 1 10 a
row2 99 20 b
row3 3 30 c
row4 4 40 d
row5 5 50 e
사용법 5 - 조건을 만족하는 값 수정하기
# B 열의 값이 30 이상인 행의 A 열 값을 100으로 수정
df.loc[df['B'] >= 30, 'A'] = 100
print(df)
출력 결과
A B C
row1 1 10 a
row2 99 20 b
row3 100 30 c
row4 100 40 d
row5 100 50 e
사용법 6 - 조건을 만족하는 여러 열 수정하기
# B가 30 이상인 경우 A는 0, C는 'Updated'로 수정
df.loc[df['B'] >= 30, ['A', 'C']] = [0, 'Updated']
print(df)
출력 결과
A B C
row1 1 10 a
row2 99 20 b
row3 0 30 Updated
row4 0 40 Updated
row5 0 50 Updated
사용법 7 - 행과 열 슬라이싱
# row1부터 row3까지 선택 (끝 포함)
print(df.loc['row1':'row3'])
# 모든 행에서 A와 B 열만 선택
print(df.loc[:, 'A':'B'])
출력 결과
A B C
row1 1 10 a
row2 99 20 b
row3 0 30 Updated
A B
row1 1 10
row2 99 20
row3 0 30
row4 0 40
row5 0 50
사용법 8 - 조건부 행 생성 및 추가
# C 열 값이 'Updated'인 경우 새로운 열 D 생성
df.loc[df['C'] == 'Updated', 'D'] = 'New Value'
print(df)
출력 결과
A B C D
row1 1 10 a NaN
row2 99 20 b NaN
row3 0 30 Updated New Value
row4 0 40 Updated New Value
row5 0 50 Updated New Value