본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터 프레임 : 인덱싱 - iloc / loc 차이

이전 포스팅에서는 데이터프레임에서 원하는 행을 인덱싱 하는 iloc[ ] 에 대해서 알아보았는데요,

iloc[ ] 뿐만 아니라 loc[ ] 도 인덱싱을 하는 함수입니다.

 

iloc[ ] 와 loc[ ] 의 차이에 대해 바로 설명하자면,

iloc[ ] 는 인덱스 번호로 인덱싱 하는 방법이고,

loc[ ] 는 인덱스 이름으로 인덱싱 하는 방법입니다.

 

한 번 코드를 보면서 설명드리도록 하겠습니다.

 

 

1. iloc[ ] : 인덱스 번호로 인덱싱

먼저, 다음과 같은 데이터프레임(df)이 있다고 가정해보겠습니다.

 

	temp	item	count	price	rating
0	hot	coffee	1	3000	4.5
1	ice	juice	5	4000	3.0
2	ice	ade	2	5000	4.0
3	hot	milk	4	2000	2.5
4	hot	tea	3	4000	3.0
5	ice	water	2	1000	4.5

 

이 데이터프레임에서 2번째 행을 인덱싱 해보겠습니다. 

 

df.iloc[2]

 

temp       ice
item       ade
count        2
price     5000
rating       4
Name: 2, dtype: object

 

출력결과를 보면, 2번째 행이 인덱싱 된 것을 확인할 수 있습니다.

 

 

2. loc[ ] : 인덱스 이름으로 인덱싱 

반면, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다. 위 데이터프레임에서 'item' 항목이 인덱스로 설정된 데이터프레임입니다.

 

	temp	count	price	rating
item				
coffee	hot	1	3000	4.5
juice	ice	5	4000	3.0
ade	ice	2	5000	4.0
milk	hot	4	2000	2.5
tea	hot	3	4000	3.0
water	ice	2	1000	4.5

 

이제 여기서 인덱스 이름이 'ade'인 2번째 행을 인덱싱 할건데요, 인덱스 이름으로 인덱싱하는 loc[ ] 함수를 사용해보겠습니다.

 

df.loc['ade']

 

temp       ice
count        2
price     5000
rating       4
Name: ade, dtype: object

 

출력된 결과를 보면 2번째 행이 인덱싱된 것을 확인할 수 있습니다.

만약 iloc[2] 라고 입력한다면 에러가 나게 됩니다. 따라서 iloc['ade'] 또는 loc[2] 라고 입력하셔야 한답니다.

 

추가로 설명드리자면, 특정 칼럼이 인덱스로 설정되지 않았을 때에는 2번째 행의 인덱스 이름 역시 2 이므로 iloc[2], loc[2] 모두 가능하답니다.

 

 

iloc와 loc 함수를 이용해서 데이터프레임을 인덱싱을 하는 방법에 대해서 살펴보았는데요, 각 함수에 대해서 잘 기억해 적절하게 사용하시기 바랍니다 :D