loc

pandas loc 소개

loc 소개

locPandas에서 라벨 기반으로 데이터프레임의 행과 열을 선택할 수 있는 방법입니다. 이는 열 이름이나 행 인덱스를 사용하여 직접 지정할 수 있다는 점에서 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

Related Docs

NCloud LB & SourcePipeline 구축하기
Data 분석 기초
tech collection 서비스 성능 개선하기
Selenium 복권 구매 자동화 만들어보기
디자인 패턴
책 리뷰
블로그 챌린지