2022-04-24 23:42:29

오늘은 판다스 데이터프레임의 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 메소드에 대해서 정리해봤습니다. 역시 포스팅을 하면서 정리해보니 차이점이 조금 더 확실하게 구분이 되는군요^^