새소식

Python

Python 기초 4 - Pandas 라이브러리 (3) Index Objects

  • -

Pandas의 주요 데이터 형식인 Series와 DataFrame에 이어 메타데이터를 저장하는 객체 Index에 대해서 이어 살펴본다.

 

이전 글>

 

Python 기초 3 - Pandas 라이브러리 (2) DataFrame

Pandas 라이브러리 1편에 이어 판다스의 또다른 데이터 구조인 DataFrame을 살펴본다. Python 기초 2 - Pandas 라이브러리 (1) Series Pandas : 데이터 분석 및 조작을 위한 파이썬 라이브러리로, (출처: 위키백

gong-uz.tistory.com

 

 

판다스에 존재하는 인덱스 (색인) 객체는 판다스의 모든 객체 (표 형식의 데이터)에서 각 행,열에 대한 축 레이블을 저장하는 객체다.

- 슬라이싱 가능

- 순서 존재

- 인덱스 객체는 데이터 변경 불가 (예: 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'의 값이 채워짐

 

2) row, column 변경 가능

- 추가된 index에는 NaN 값이 채워진다. 

- row, column 삭제하기: drop 메서드

#row 삭제
obj=pd.Series(np.arange(4.), index=['a','b','c','d']
new_obj=obj.drop('a')
new_obj2=ob.drop(['a','b'])

#column 삭제
data=pd.DataFrame(np.arange(12), reshape((3,4)), index=['a','b','c'], columns=['school','musuem','hospital','shop'])
#이름으로 삭제
data.drop(['school','museum'])
#axis 지정해 삭제
data.drop('a',axis=1)
data.drop('a',axis='columns')

#inplace 옵션을 통해 원본 객체를 변경
obj.drop('a',inplace=True)

 

 

3) loc 사용하여 reindex

: frame.loc[[0], ['c']]

 

 

4. 정수 index vs 레이블 index

- 레이블 명으로 슬라이스 시 시작점과 끝점 포함, 위치로 슬라이스 시 끝점 미포함

 

5. loc vs iloc

- loc(): 레이블 명으로 (축의 이름으로) 선택

- iloc(): 정수 인덱스 선택

*** 파이썬의 내장 자료구조 리스트, 튜플과 pandas가 다른 점: 

 

 

 

 

 

 

 

출처

https://wikidocs.net/155388

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.