DATA/Python

[python] pandas의 loc, iloc 차이

웅덩이 2022. 4. 15. 23:21

📌 df.loc[인덱스] : 인덱스 행 데이터 가져오기

📌 df.iloc[행 위치] : 행 위치에 해당하는 데이터 가져오기

 

 

그렇다면 인덱스와 행 번호는 무슨 차이일까요?

 

 

sklearn의 아이리스 데이터를 이용하여 예를 들어보겠습니다.

파이썬 기준으로 3번째 행을 삭제했을 경우 데이터 프레임은 다음과 같이 나타납니다.

 

 

 

빨간 박스는 '인덱스 번호'입니다.

 

 

📌 인덱스는 데이터에 고유 값으로 정해지기 때문에 데이터를 삭제해도 바뀌지 않습니다.

     하지만 행 번호 위치 값에 따라 바뀝니다. 

 

 

즉, 인덱스 번호는 여전히 (0,1,2,4,5) 이지만 행 번호는 (0,1,2,3,4) 입니다.

 

 

loc을 이용하여 3번을 추출해보면 어떻게 나올까요?

 

df_iris.loc[3]

 

KeyError가 나타났습니다. 3번 인덱스가 없기 때문입니다.

 

 

 

iloc을 이용하여 3번을 추출해보면 어떨까요?

 

df_iris.iloc[3]

 

 

전체 데이터 프레임 기준으로 보았을 때 파이썬 기준으로 3번째 행 데이터가 추출된 것을 알 수 있습니다.