모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!
📝 목차
1. 행으로 접근
2. 행 / 열으로 접근
🐼 공부하다 보니 loc / iloc 함수가 생각보다 다양한 경우에 사용가능하다는 것을 알게되었습니다.
🐼 이번에 정리해두면 나중에 전처리를 할때 좀 더 수월하게 할 수 있을거 같아서 적어둘 생각입니다.
🐼 먼저 사용할 데이터프레임을 하나 만들어 봅시다.
import pandas as pd
df = pd.DataFrame({'국어':[90, 85, 88],
'수학':[92, 88, 96],
'과학':[85, 92, 90]},
index = ['A','B','C'])
df
>>
국어 수학 과학
A 90 92 85
B 85 88 92
C 88 96 90
1. 행에 접근
🐼 loc[ ] : 인덱스의 이름을 인수로 받습니다.
df.loc['A']
>>
국어 90
수학 92
과학 85
Name: A, dtype: int64
🐼 iloc[ ] : 인덱스의 순서를 인수로 받습니다(0,1,2...).
df.iloc[2]
>>
국어 88
수학 96
과학 90
Name: C, dtype: int64
2. 행 / 열에 접근
2.1. loc
🐼 loc( ) 함수를 사용하는 경우에는 꼭 행 / 열의 이름을 인수로 넣어야 합니다!!
🐼 A : B 형태로 슬라이싱 할때 A,B가 character면 B도 포함됩니다.
df.loc[:, '수학':'과학']
>>
수학 과학
A 92 85
B 88 92
C 96 90
df.loc['A':'B', '국어':'수학']
>>
국어 수학
A 90 92
B 85 88
이렇게 원하는 부분들을 슬라이싱해서 가져올수 있고,
df.loc[['A','C'], ['국어','과학']]
>>
국어 과학
A 90 85
C 88 90
원하는 부분의 인덱스 / 열 이름을 입력하여 가져올수도 있습니다.
🐼 df.loc[ df [column] ~조건, 열 ]
df.loc[df['수학'] >= 90, ['수학','과학']]
>>
수학 과학
A 92 85
C 96 90
df.loc[df['수학'] >= 90, '국어':'수학']
>>
국어 수학
A 90 92
C 88 96
행 부분에 조건을 입력해서 원하는 부분을 필터링할 수도 있습니다.
2.2. iloc
🐼 iloc( ) 함수를 사용하는 경우에는 꼭 행 / 열의 순서를 인수로 넣어야 합니다!!
🐼 A:B 형태로 슬라이싱 할때 A,B가 numeric이면 B는 제외됩니다.
df.iloc[:, [1,2]]
>>
수학 과학
A 92 85
B 88 92
C 96 90
df.iloc[:2, :2]
>>
국어 수학
A 90 92
B 85 88
이렇게 원하는 부분들을 슬라이싱해서 가져올수 있고,
df.iloc[[0,2], [0,2]]
>>
국어 과학
A 90 85
C 88 90
원하는 부분의 인덱스/ 열 순서를 입력하여 가져올 수도 있습니다.
📝 loc / iloc 함수에 각각 어떤 인수가 들어가야 하는지, 슬라이싱은 어떻게 되는지 정확히 아는 것이 중요해 보입니다.
📝 전처리 과정에서 행에 접근하는 경우는 그렇게 많지 않기 때문에 loc 함수를 사용한 적은 별로 없는 것 같습니다. 하지만 위의 예시처럼 행/열에 동시에 접근이 가능하고 조건을 통해서 필터링도 할 수 있기 때문에 제대로 사용하면 편해질 거 같습니다!!
📝 여러 데이터 분석 코드들을 살펴본 결과, 생각보다 loc 함수를 많이 사용했습니다. 저도 더 자연스럽고 효율적인 분석을 위해 함수 사용을 익숙하게 해봐야겠습니다🙂.
'🐼 판다스 > Pandas 함수' 카테고리의 다른 글
🐼 Pandas 07. pd.Categorical( ) 함수 (2) | 2023.01.14 |
---|---|
🐼 Pandas 06. pd.to_datetime( ) 함수 (2) | 2023.01.14 |
🐼 Pandas 04. DataFrame 열에 접근하기 (2) | 2023.01.13 |
🐼 Pandas 03. DataFrame 행에 접근하기 (0) | 2023.01.13 |
🐼 Pandas 02. DataFrame 만들기 (0) | 2023.01.13 |