4.3 데이터프레임 고급 인덱싱
1. 데이터프레임 고급 인덱싱
- 데이터프레임에서 특정한 데이터만 골라내는 것을 인덱싱(indexing)이라고 함.
- 앞 절에서는 라벨, 라벨 리스트, 인덱스데이터(정수) 슬라이스의 3가지 인덱싱 값을 사용하여 인덱싱을 하는 방법을 공부
- 근데 Pandas는 numpy 행렬과 같이 쉼표를 사용한(행과 열 인덱스) 형식의 2차원 인덱싱을 지원하기 위해
- 다음과 같은 특별한 인덱서(indexer)속성도 제공한다.
- loc : 라벨값 기반의 2차원 인덱싱
- iloc : 순서를 나타내는 정수 기반의 2차원 인덱싱
2. #### loc 인덱서
- loc 인덱서는 다음처럼 사용한다.
- df.loc[행 인덱싱 값]
- 또는
- df.loc[행 인덱싱값, 열 인덱싱값]
- 이 때 인덱싱 값은 다음 중 하나이다.
- 행 인덱싱값은 정수 또는 행 인덱스데이터이고 열 인덱싱값은 라벨 문자열이다.
- 인덱스데이터
- 인덱스데이터 슬라이스
- 인덱스데이터 리스트
- 같은 행 인덱스를 가지는 불리언 시리즈(행 인덱싱의 경우)
- 또는 위의 값들을 반환하나는 함수
- 다음과 같은 데이터프레임을 예로 들자.
3. #### 인덱싱값을 하나만 받는 경우
- 만약 loc 인덱서를 사용하면서 인덱스를 하나만 넣으면 행(row)을 선택한다.
- 인덱스데이터가 "a"인 행을 고르면 해당하는 행이 시리즈로 출력된다.
- 시리즈라서 상하로 길게 출력되기를 했지만 행을 가져오고 있다.
4. #### 인덱싱값을 행과 열 모두 받는 경우
- 인덱싱값을 행과 열 모두 받으려면 df.loc[행 인덱스, 열 인덱스]와 같은 형태로 사용
- 행 인덱스 라벨값이 a, 열 인덱스 라벨값이 A인 위치의 값을 구하는 것은 다음과 같다.
5. ### iloc 인덱서
- iloc 인덱서는 loc 인덱서와 반대로 라벨이 아니라
- 순서를 나타내는 정수(integer) 인덱스만 받는다.
- 다른 사항은 loc 인덱서와 같다.
'😀 기초 > 판다스(Pandas)' 카테고리의 다른 글
4.5 데이터프레임 인덱스 조작 (0) | 2022.02.02 |
---|---|
4.4 데이터프레임의 데이터 조작 (0) | 2022.01.30 |
4.2 데이터 입출력 (0) | 2022.01.28 |
4.1장 판다스 패키지의 소개(4.1_데이터프레임 클래스) (0) | 2022.01.26 |
4장 난수 발생과 카운팅(4.0 ~ 4.1_시리즈 클래스) (0) | 2022.01.26 |