머신러닝(MachineLearning)/판다스(Pandas)

Index 객체

Danny1231 2022. 7. 7. 11:23

판다스의 Index는 DataFrame, Series의 레코드(행)을 고유하게 식별하는 객체이다. 

import pandas as pd
# 타이타닉 데이터 파일 불러오기
titanic_df = pd.read_csv('train.csv')
# Index 객체를 indexes 변수에 저장
indexes = titanic_df.index
print('Index 객체:', indexes)
print('Index 객체 array 값: \n', indexes.values)

실행 결과

DataFrame이 총 891개의 행을 가지므로 indexes.values에는 0부터 890까지의 값이 1차원 array에 저장되어 있다.

Index 객체는 ndarray와 유사하게 슬라이싱이 가능하지만, 레코드를 구별하는 고유값이기 때문에 수정은 할 수 없다.

print(type(indexes.values))
print(indexes.values.shape)
print(indexes[:5].values)
print(indexes.values[:5])
print(indexes[6])

실행 결과

# 아래와 같이 인덱스 객체의 값을 수정하면 오류가 발생한다.
indexes[1] = 7

DataFrame이나 Serires에 reset_index() 메서드를 수행하면 새 인덱스가 할당되며 기존 인덱스가 'index'라는 새로운 열에 추가된다. 만약 'index'열이 새로 생성되지 않게 하려면 drop=True를 괄호 안에 넣어주면 된다.

# default 값이 drop=False이므로 index열을 새로 생성함
titanic_reset_df = titanic_df.reset_index(inplace=False)
titanic_reset_df.head(3)

실행 결과

# drop=True로 index 열을 새로 생성하지 않음
reset_index_df = titanic_df.reset_index(drop=True, inplace=False)
reset_index_df.head(3)

실행 결과

reset_index() 메서드는 주로 인덱스가 연속된 숫자형 데이터가 아닐 경우에 인덱스를 다시 만들어주기 위해 사용된다.