본문 바로가기

😀 기초/판다스(Pandas)

4.5 데이터프레임 인덱스 조작

4.5 데이터프레임 인덱스 조작

 

1.#### 데이터프레임 인덱스 설정 및 제거
- 때로는 데이터프레임에 인덱스로 들어가 있어야 할 데이터가 
- 일반 데이터 열에 들어가 있거나 반대로 일반 데이터 열이어야 할 것이 인덱스로 되어 있을 수 있다.
- 이 때는 set_index명령과 reset_index 명령으로 인덱스와 일반 데이터 열을 교환할 수 있다.

- set_index: 기존의 행 인덱스를 제거하고 데이터 열 중 하나를 인덱스로 설정
- reset_index : 기존의 행 인덱스를 제거하고 인덱스를 데이터 열로 추가

 

2. #### 다중 인덱스
- 행이나 열에 여러 계층을 가지는 인덱스 즉, 다중 인덱스를 설정할 수도 있다.
- 데이터프레임을 생성할 때 columns 인수에 다음 예제처럼 리스트의 리스트(행렬)
- 형태로 인덱스를 넣으면 다중 열 인덱스를 가지게 된다.

 

3. #### 행 인덱스와 열 인덱스 교환
- stack 메서드나 unstack 메서드를 쓰면 열 인덱스를 행 인덱스로 바꾸거나
- 반대로 행 인덱스를 열 인덱스로 바꿀 수 있다.
- stack : 열 인덱스 -> 행 인덱스로 변환
- unstack : 행 인덱스 -> 열 인덱스로 변환

 

- stack 메서드를 실행하면 열 인덱스가 반시계 방향으로 90도 회전한 것과 비슷한 모양
- 마찬가지로 unstack 메서드를 실행하면 행 인덱스가 시계 방향으로 90도 회전 한 것과 비슷
- 인덱스를 지정할 때는 문자열 이름과 순서를 표시하는 숫자 인덱스를 모두 사용할 수 있다.

 

4. #### 다중 인덱스가 있는 경우의 인덱싱
---
- 데이터프레임이 다중 인덱스를 가지는 경우에는
- 인덱스 값이 하나의 라벨이나 숫자가 아니라 ()로 둘러싸인 튜플이 되어야 한다.
- 예를 들어 앞에서 만든 df3 데이터프레임의 경우 다음과 같이 인덱싱할 수 있다.

 

5. #### 다중 인덱스의 인덱스 순서 교환
- 다중 인덱스의 인덱스 순서를 바꾸고 싶다면 swaplevel 명령을 사용
- swaplevel(i, j, axis)
- i와 j는 교환하고자 하는 인덱스 라벨(혹은 인덱스 번호)이고
- axis는 0일 때 행 인덱스, 1일 때 열 인덱스를 뜻한다.
- 디폴트는 행 인덱스이다.

 

6. #### 다중 인덱스가 있는 경우의 정렬
- 다중 인덱스가 있는 데이터프레임을 sort_index로 정렬할 때는
- level 인수를 사용하여 어떤 인덱스를 기준으로 정렬하는지 알려주어야 한다.