반응형
16-2 df.loc[ ] 이용하기
인덱스 활용하기
df = pd.DataFrame({'var1' : [1, 2, 3],
'var2' : [4, 5, 6]})
df
# 인덱스 문자열 지정하기
df = pd.DataFrame({'var1' : [1, 2, 3],
'var2' : [4, 5, 6]},
index = ['kim', 'lee', 'park'])
df
인덱스 문자열을 지정해 행 추출하기
# kim 행 추출
df.loc['kim']
"""
var1 1
var2 4
Name: kim, dtype: int64
"""
여러 행 추출하기
# kim, park 행 추출
df.loc[['kim', 'park']]
인덱스 문자열을 지정해 열 추출하기
# lee 행의 var1 열 추출
df.loc['lee', 'var1']
##출력: 2
# kim, lee 행의 var2 열 추출
df.loc[['kim', 'lee'], 'var2']
"""
kim 4
lee 5
Name: var2, dtype: int64
"""
df.loc[:, 'var1']
"""
kim 1
lee 2
park 3
Name: var1, dtype: int64
"""
인덱스 번호를 지정해 행 추출하기
# 인덱스 번호가 있는 데이터 프레임
df = df_raw.copy()
df
# 0행 추출
df.loc[0]
"""
id 1
nclass 1
math 50
english 98
science 50
Name: 0, dtype: int64
"""
# 2행 추출
df.loc[2]
"""
id 3
nclass 1
math 45
english 86
science 78
Name: 2, dtype: int64
"""
행이 1개일 때 데이터 프레임 자료 구조 유지하기
# 시리즈로 추출
df.loc[0]
"""
id 1
nclass 1
math 50
english 98
science 50
Name: 0, dtype: int64
"""
# 데이터 프레임으로 추출
df.loc[[0]]
여러 행 추출하기
# 0, 3, 5행 추출
df.loc[[0, 3, 5]]
연속된 행 추출하기
# 0~3행 추출
df.loc[0:3]
# 7~9행 추출
df.loc[7:9]
# 0~2행 추출
df.loc[0:2]
# 첫 번째 행 ~ 2행 추출
df.loc[:2]
인덱스 문자열만 있으면 인덱스 번호로 행을 추출할 수 없음
인덱스 번호로 열을 추출할 수 없음
조건을 충족하는 행 추출하기
# nclass가 1이면 추출
df.loc[df['nclass'] == 1]
# 수학 점수가 60점 이상이면 추출
df.loc[df['math'] >= 60]
조건을 충족하는 행에서 열 추출하기
# nclass가 1인 행의 math, english 열 추출
df.loc[df['nclass'] == 1, ['math', 'english']]
# 0~3행의 math 열 추출
df.loc[0:3, 'math']
"""
0 50
1 60
2 45
3 30
Name: math, dtype: int64
"""
조건을 충족하는 행 추출 방법 비교 (출력 결과 같음)
# 수학 점수가 50을 초과하는 행 추출하기
# df.query('math > 50') # df.query()
# df[df['math'] > 50] # df[]
# df.loc[df['math'] > 50] # df.loc[]
※ 해당 내용은 <Do it! 파이썬 데이터 분석>의 내용을 토대로 학습하며 정리한 내용입니다.
반응형
'데이터 분석 학습' 카테고리의 다른 글
16장 데이터를 추출하는 다양한 방법 (3) (0) | 2023.05.12 |
---|---|
16장 데이터를 추출하는 다양한 방법 (1) (1) | 2023.05.10 |
15장 머신러닝을 이용한 예측 분석 (2) (0) | 2023.05.09 |
15장 머신러닝을 이용한 예측 분석 (1) (0) | 2023.05.08 |
14장 통계 분석 기법을 이용한 가설 검정 (2) (0) | 2023.05.07 |