PL/Python

데이터프레임의 인덱스 중복과 loc 프로퍼티

PIYA 2022. 11. 2.

포스팅 목적

데이터프레임에서 .loc[]의 사용에 대해 한번 점검하려고 포스팅!

 

본론

예제코드

Animal칼럼, 최대스피드 칼럼을 가진 데이터프레임을 아래와 같이 만들었다.

import pandas as pd
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'],
                   'Max Speed': [380, 370, 24, 26]},
                  index=[4,4,5,'긹'])
df

 

.loc[ ]는 인덱스로 '행'을 조회하는 프로퍼티

dataframe loc를 검색하면 'label'을 이용해 행과 열 데이터에 접근하는 프로퍼티라 한다.

 

이때 loc[ _ ] 에 들어가는 레이블은 인덱스를 의미한다.

인덱스는 0, 1, 2, ... 이렇게 나가는 integer position을 의미하는 것이 아니고,

위 예제에서의 4,4,5,긹을 인덱스라 한다.!

즉 .loc[] 프로퍼티로 인덱스를 지정하여 해당 값을 꺼내올 수 있다!

(integer position 을 기준으로 데이터를 뽑으려면 iloc를 써야함.)

 

하나 더, 인덱스는 유니크해야한다고 생각하기 쉽지만

데이터프레임에서는 위에서 관찰한 것처럼 인덱스값이 중복될 수 있다.

 

아래 코드에서 보면 loc프로퍼티를 이용하여 '긹' 인덱스를 가진 데이터를 뽑아내는 것을 볼 수 있다.

'긹'에 해당하는 데이터가 1개이므로 시리즈가 반환되었고,

.loc[4]를 수행하였을 때에는 2개 행데이터가 선택되므로 데이터프레임이 반환되었다.

 

 

 

마무리

데이터프레임에서 인덱스는 중복이 가능하다는 사실과,

어렴풋이 알고만 있던 loc를 한번 사용해보는데 의의를 둔 포스팅!

댓글