[데이터분석] 데이터 프레임 : 인덱싱 - 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