꿈 많은 사람의 이야기

python dataframe index란? index 처리와 reset_index 메소드 본문

python

python dataframe index란? index 처리와 reset_index 메소드

이수진의 블로그 이수진의 블로그 2019.08.14 06:49

dataframe을 사용하다 보면 index 값을 가져올 필요가 있습니다.

index값을 가져오는 것은 특히 dataframe의 정렬 후 실제 index 값을 가져올 때 유용하게 사용합니다.

이번 포스팅은 이러한 dataframe index 처리에 대해서 알아봅니다.

index 객체는 레코드는 유일하게 식별해주는 객체입니다.

dataframe이나 series에서 index만 추출하려면 DataFrame.index 또는 Series.index를 하면 됩니다.

 

 

위 사진처럼 datafame.index를 하고 나서 이를 index.values를 통해 list로 변환해서 보면 index를 볼 수 있습니다.

이 index는 특이한 성질이 있습니다.

바로 값을 바꿀 수 없다는 것입니다.

index는 고유한 값이기 때문에 그 값을 함부로 바꿀 수 없습니다.

 

 

실제로 위 사진처럼 index[0] = 5와 같이 바꾸려고 하면 index does not support mutable operations라고 에러가 나오게 됩니다.

위에서는 DataFrame의 index를 보았지만 Series또한 index가 존재합니다.

그리고 만약, min, sum과 같은 aggregation 연산을 진행할 때에는 당연히 index는 제외하고 연산합니다.

 

 

위처럼 data['Fare'] 값만 빼내서 index를 볼 수 있고(Series.index) max, sum 등을 할 때에 index는 제외되고 진행됩니다.

그리고 dataframe과 series에서는 reset_index() 메소드를 제공해줍니다. reset_index()는 새롭게 인덱스를 숫자형으로 만들고 기존 index를 컬럼으로 새롭게 넣어줍니다.

아래와 같이 순서가 1,2,3이 없는 데이터가 있다고 가정합니다

 

 

위처럼 0다음이 4,5,6,7~로 진행됩니다.

여기서 reset_index를 해보죠

 

 

reset_index()를 하면 새롭게 데이터를 반환할 수 있습니다. inplace = True로 하지 않고 inplace = False로 하면 가능합니다.

아무튼 reset_index(inplace = False)로 하면 컬럼에 새롭게 index라는 컬럼이 생기고 그 컬럼에 기존 index 값이 들어갑니다. 위  사진처럼요

그리고 실제로 옆에 인덱스를 보면 0,1,2,3,4 순으로 제대로 index 처리가 된 것을 볼 수 있습니다.

 

근데 reset_index를 수행했을 때 저 컬럼이 들어가는 것을 원치 않을 경우가 있습니다.

사실상 reset_index를 하였을 때 index 컬럼이 추가 되는 것이 싫죠

이럴때는 reset_index를 drop 해줘야 합니다.

reset_index drop은 아래와 같습니다

 

 

reset_index(drop = True)로 하게 되면 index를 reset시키고 컬럼에 index를 추가시키지 않을 수 있습니다.

 

0 Comments
댓글쓰기 폼