Python/Pandas

[Pandas] 파이썬 인덱스 설정 방법 정리(set_index 함수)

jimmy_AI 2022. 3. 1. 13:17
반응형

판다스 set_index 함수 사용법(데이터프레임 인덱스 지정)

안녕하세요. 이번 시간에는 파이썬 판다스 라이브러리에서 데이터프레임의

인덱스를 지정할 수 있는 set_index 함수의 경우의 수에 대하여 정리를 해보며

사용 방법을 익혀보도록 하겠습니다.

 

참고로, 이 글은 pandas 공식 document의 set_index 설명 글을 기반으로 작성되었습니다.

 

이해를 돕기 위하여, 아래와 같은 간단한 데이터프레임을 예시로 인덱스를 설정해보겠습니다.

import pandas as pd

df = pd.DataFrame({'id' : [101, 102, 103, 104], 'name' : ['aaa', 'bbb', 'ccc', 'ddd'], 'math' : [100, 85, 93, 87], 'english' : [96, 98, 89, 92]})

df

참고로, default 값으로는 가장 좌측의 굵은 글씨인 0, 1, 2, 3이 인덱스로 설정된 상태입니다.

 

 

인덱스 지정 방법 1 : 특정 열 1개를 인덱스로 지정

가장 간단한 경우로, 인덱스로 삼기를 원하는 column 이름을 input에 넣어주시면 됩니다.

df.set_index('id')

위에서는 id 열이 인덱스로 설정되었으며, 다른 column도 마찬가지로 지정이 가능합니다.

 

 

인덱스 지정 방법 2 : 열 2개 이상 멀티 인덱스 지정

두 개 이상의 column이 동시에 인덱스로 지정된 다중 인덱스도 set_index로 지정 가능합니다.

이 경우에는, 원하는 column들을 리스트 내에 순서대로 넣어 input으로 주면 됩니다.

df.set_index(['id', 'name'])

id와 name column 순서로 다중 인덱스가 설정된 모습을 확인할 수 있었습니다.

반응형

인덱스 지정 방법 3 : 원하는 값들로 인덱스 구성

이번에는 특정 열을 인덱스로 삼는 것이 아니라, 원하는 특정 값들을 인덱스로

지정하고 싶은 경우입니다. 리스트에 원하는 값들을 담은 뒤, pd.Index 함수로

인덱스 객체로 만들어 input으로 넣어주면, 해당 값들로 인덱스 구성이 가능합니다.

 

다만, 반드시 인덱스의 값 개수가 row의 개수와 일치해야만 합니다.

df.set_index(pd.Index(['1번', '2번', '3번', '4번']))

1번 ~ 4번이라고 작성된 값들이 인덱스 위치에 자리잡은 모습을 확인할 수 있었습니다.

 

 

인덱스 지정 방법 4 : 원하는 값을 포함하여 멀티 인덱스 구성

3번 방법에서 지정한 특정 인덱스 항목들끼리, 혹은 특정 column과 조합하여

복합적인 다중 인덱스를 지정하는 것도 가능합니다.

 

원하는 인덱스 객체, column의 이름을 넣은 리스트를 input으로 주면

필요한 방식으로 다중 인덱스가 구성되게 만들 수 있습니다.

df.set_index([pd.Index(['1번', '2번', '3번', '4번']), 'name'])

위의 경우에는 1번 ~ 4번이라고 작성된 값과 name 열이 다중 인덱스를 구성하고 있게 됩니다.

 

 

번외 : 인덱스를 초기화하고 싶은 경우

만일, 지정한 인덱스를 default 상태로 되돌리고 싶은 경우에는

reset_index 함수를 이용하면 손쉽게 인덱스 초기화가 가능합니다.

 

해당 함수의 상세한 사용 방법은 아래에 첨부한 포스팅을 참고하세요.

 

[Pandas] 인덱스 초기화, 재정렬 (groupby 후 행 정렬) - reset_index

Groupby 함수, 멀티인덱스 파이썬 데이터 분석 툴인 Pandas를 사용하다보면 groupby 기능을 자주 사용하게 되고, 두 가지 이상의 범주로 groupby를 실행한 경우, 자동으로 멀티인덱스가 적용되어, 다음과

jimmy-ai.tistory.com

여기까지 인덱스 설정과 관련된 포스팅을 마치도록 하겠습니다. 감사합니다.