오늘은 판다스 데이터프레임의 loc, at, iloc, iat 메소드를 비교해보도록 하겠습니다. 우선 네가지 메소드 모두 데이터프레임에서 인덱싱과 관련된 메소드입니다. 정말 많이 사용하는 메소드들인데 사용할 때마다 문법이 헷갈려서 매번 다시 구글링하게 되는 놈들이라, 이번에는 정리하면서 외우려고 합니다. ^^
간단 정리
loc 메소드는 특정 범위의 데이터를 인덱싱하는데 사용할 수 있습니다. 반면 at 메소드는 딱 하나의 데이터를 인덱싱할 때 사용합니다.
예시로 사용할 데이터프레임을 먼저 생성했습니다. A, B, C, D, E라는 학생들의 수학, 영어, 역사 시험 성적을 담은 데이터프레임입니다.
import pandas as pd
df = pd.DataFrame([[95, 92, 88], [84, 67, 88], [91, 99, 68], [87, 79, 81], [77, 92, 85]],
index=['A', 'B', 'C', 'D', 'E'],
columns=['math', 'english', 'history'],
)
loc 메소드
A, B, C 학생의 영어 성적만을 선택하고 싶으면 다음과 같이 loc 메소드를 사용하면 됩니다. 참고로 loc은 location을 줄인 것입니다.
print(df.loc[['A', 'B', 'C'], 'english'])
만약 A, B, C 학생의 영어 및 역사 성적을 선택하고 싶으면 다음과 같이 코드를 작성하면 됩니다.
print(df.loc[['A', 'B', 'C'], ['english', 'history']])
at 메소드
위에서 언급했듯이 at 메소드는 특정 행, 특정 컬럼의 데이터를 읽을 때 사용합니다. 만약 C 학생의 영어 성적을 알고 싶다면 다음과 같이 코드를 작성하면 됩니다.
print(df.at['C', 'english'])
loc 메소드와 at 메소드를 살펴봤습니다. 그러면 앞에 i가 추가된 iloc 메소드와 iat 메소드에 대해 알아보도록 하겠습니다. 여기서 i는 integer의 첫글자를 따서 붙여진 것입니다. 인덱스와 컬럼명을 사용하지 않고 대신 행과 컬럼의 위치에 대해서 정수를 사용하고 싶으면 iloc과 iat을 사용하면 됩니다.
iloc 메소드
1번째 행부터 2번쨰 행까지, 그리고 0번째 컬럼부터 1번째 컬럼까지의 데이터를 인덱싱하고 싶을 때는 iloc 메소드를 사용하면 됩니다.
print(df.iloc[1:3, 0:2])
iat 메소드
마찬가지로 4번째 행, 0번째 컬럼의 값을 알고 싶을 때는 iat 메소드를 사용할 수 있습니다.
print(df.iat[4, 0])
오늘은 판다스 데이터프레임의 loc, at, iloc, iat 메소드에 대해서 정리해봤습니다. 역시 포스팅을 하면서 정리해보니 차이점이 조금 더 확실하게 구분이 되는군요^^
'Dev > python' 카테고리의 다른 글
[python] seaborn 라이브러리가 제공하는 타이타닉 데이터셋 설명 (0) | 2022.05.15 |
---|---|
[pandas] 데이터프레임 groupby(), agg() 메소드로 그룹의 평균값, 최대값 산출하기 (0) | 2022.04.28 |
[python+pandas] 판다스 데이터 프레임에서 컬럼의 고유값을 알고 싶으면, unique 메소드 (0) | 2022.04.27 |
[pandas] 특정 컬럼 값 기준으로 데이터프레임 정렬하기, sort_values 메소드 (0) | 2022.04.26 |
[python] 파이썬 리스트에 최대 몇 개의 요소가 들어갈 수 있을까? (10) | 2022.04.19 |
[python] UnicodeDecodeError: 'cp949' codec can't decode byte 0xed in position 135: illegal multibyte sequence 에러 해결법 (0) | 2022.04.18 |
[python+opencv] ip 카메라(cctv)로부터 영상 받기 (2) | 2022.03.31 |
[flask+jinja2] 반올림하기, round 필터 (0) | 2022.03.19 |