pandas 데이터프레임 loc와 iloc 비교 정리
이전에 loc와 iloc를 정리한 글이 있지만 다시 읽어보니 헷갈리는 부분이 많아서 새롭게 다시 정리했다.
1. loc
- 인덱스 이름(index label) 탐색
- 인덱스 이름이 숫자일 경우 loc[0] -> 이 경우 iloc와 유사한 형태이지만 위치 인덱스를 나타내는 건 아니다.
- 사용법
- df.loc[행 인덱스 이름]
- df.loc[행 인덱스 이름, 열 인덱스 이름]
- 범위 지정 가능(범위의 끝 포함)
- loc[3 : 7] -> 3, 4, 5, 6, 7 (7 포함)
- loc['a' : 'c'] -> 'a', 'b', 'c'
2. iloc
- 정수형 위치 인덱스(interger location) 탐색
=> 우리 눈에는 보이지 않지만 인덱스에는 순서대로 위치가 존재한다.
- 사용법
- df.iloc[행 인덱스넘버]
- df.iloc[행 인덱스넘버, 열 인덱스넘버]
- df.iloc[[인덱스넘버1, 인덱스넘버2, ...]]
- 범위 지정 가능(범위의 끝 제외)
- iloc[시작 인덱스넘버 : 끝 인덱스넘버 : 간격] => 간격을 설정하지 않을 경우 자동으로 1이 지정된다
- iloc[3 : 7] -> 3, 4, 5, 6 (7 제외)
3. loc와 iloc의 슬라이싱
- loc와 iloc 모두 범위를 지정하여 슬라이싱할 수 있다
- loc를 사용해 슬라이싱하는 경우 범위의 끝이 포함된다
- iloc를 사용해 슬라이싱하는 경우 범위의 끝이 제외된다
- ex) loc[3 : 7]
>>> 3, 4, 5, 6, 7
loc['a' : 'c']
>>> a, b, c
iloc[3 : 7]
>>> 3, 4, 5, 6