데이터분석 공부/DSBA 4기

pandas 데이터프레임 loc와 iloc 비교 정리

이삼오 2024. 3. 6. 17:41

이전에 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