세조목

Python - shape속성 & loc와 iloc의 차이 본문

데이터 분석 공부/Python

Python - shape속성 & loc와 iloc의 차이

세조목 2024. 3. 11. 17:33

shape

shape는 데이터 프레임의 행과 열을 알려주는 속성이다.

메서드가 아닌 속성이기때문에 아래와같이 소괄호를 제외하고 써줘야 한다.

df.shape

 

loc

행 이름을 기준으로 행 추출

 

iloc

행 번호(행 위치)를 기준으로 행 추출

범위를 지정해서 인덱싱을 할 때 마지막 숫자는 포함하지 않는다.

 

loc와는 다르게 뒤에서 n번째 행을 찾을때 '-' 를 사용할 수 있다.

how? iloc는 행 이름이 아닌 행 번호(행 위치)로 작동하기 때문이다.

 

아래의 경우 맨 마지막 행을 인덱싱한 것이다.

 

앞서 loc는 행 이름을, iloc는 행 번호를 기준으로 추출한다고 적었다.

두 속성 모두 열을 지정할수도 있는데 대괄호([ ])의 열 부분에 loc의 경우 숫자를, iloc의 경우 문자를 적으면

오류가 발생한다.

예를들어

loc는 행 이름을 기준으로 추출하기때문에 열 부분에 문자를 적어야 한다고 했는데 숫자를 적을 경우 아래와 같이

오류가 발생한다.

 

반대로 iloc는 행 번호를 기준으로 추출하기때문에 열 부분에 숫자를 적어야 한다고 했는데 문자를 적을 경우 아래와 같이

숫자를 필요로한다는 오류 메시지가 뜬다.

 

아래 이미지가 제대로 인자를 입력했을때의 결과값이다.

(좌)loc / (우)iloc

iloc는 추출하고자하는 열을 지정할 때

앞선 예시에서처럼 각각의 열 번호를 모두 적어줄 필요없이

' : '를 활용하여 정할 수 있다.

예를 들어

df.iloc[:,:4]

라고 적으면 첫번째 열부터 네번째 열까지를 추출할 수 있다.