판다스에 존재하는 인덱스 (색인) 객체는 판다스의 모든 객체 (표 형식의 데이터)에서 각 행,열에 대한 축 레이블을 저장하는 객체다.
- 슬라이싱 가능
- 순서 존재
- 인덱스 객체는 데이터 변경 불가 (예: index1[1]='change'>error!)
- 중복된 값 허용
1. index 객체 생성하기
- 기본 활용: df.index
Index=pd.index(sequence, name=None)
#인덱스 객체 생성
labels=pd.Index(np.arange(4))
#>>Int64Index[0,1,2,3],dtype='int64'
#labels 인덱스 객체로 시리즈 객체 만들기
obj=pd.Series(['a','b','c','d'], index=labels)
#비교하면 True 값이 나온다.
obj.index is labels
2. index 객체 삭제하기
- index는 불변형 (immutable)한 자료형이므로, 원본 인덱스 객체를 삭제하여 수정하는 것이 아니라 새로운 객체(복사본)을 반환한다.
1) drop 함수 (값으로 지정)
: labels.drop('a')
2) delete 함수 (i 위치 색인으로 지정)
: labels.delete(1)
3. index 변경 - Reindexing
: index를 새로운 인덱스 객체로 덮어씌우고 내용을 채우는 메서드
1) method 옵션: 값 채워 넣을 때
- ffill: 직전의 값으로 결측치 채움
- bfill: 직후의 값으로 결측치 채움
- nearest: 근처의 유효값으로 결측치 채움
obj=pd.Series(['a','b','c'], index=[0,2,5])
obj.reindex(range(6), method='ffill')
#>>1,3,4,6의 인덱스에는 'a','b','b','c'의 값이 채워짐