데이터분석/Python Pandas

pandas 사용하기 2 index 바꾸기 (df.set_index())

창조적생각 2021. 7. 30. 12:36

pandas에서 CSV 파일을 불러들이면 가장 앞에 index부분이 0부터 시작하는 숫자로 지정되며,

그 column의 이름이 지정되지 않습니다.

그렇기에 앞서 살펴본 loc으로 하는 검색에 불편함이 생길 수 있습니다.

 

오늘은 초기 지정되는 index column을 표 내부의 내용으로 바꿔서 loc로 하는 검색이 원활해 질 수 있는

set_index()에 대해 살펴보겠습니다.

 

 

초기에 dic 자료형인 people를 DataFrame으로 df를 만들면 위에서 보는 바와 같이 가장 앞에 인덱스 값이 0,1,2로 나오며 이 곳의 name은 지정되지 않습니다.

이 인덱스를 address값으로 바꿔보겠습니다.

방법은 간단합니다.

df.set_index('adress') 를 실행해 주면 됩니다.

 

 

 

그리고 다시 df를 실행해 보면 다시 처음으로 돌아간 것을 알 수 있습니다. 

 

 

 

df.set_index('adress')에서 뒤에 inplace = True 를 추가해 주시면 주피터 노트북을 시행하고 있는 동안, df의 모습은 우리가 설정한 모습으로 바뀝니다.

 

 

df.index를 입력하여 잘 바뀌었나 확인해 봅니다.

 

 

index가 "논현동","마포동","신사동"이고 index의 이름은 "address"로 지정되었음을 볼 수 있습니다.

 

이제 index를 바꾼 이유가 나옵니다.

iloc이 아닌 loc으로 검색이 수월해집니다.

 

논현동에 사는 사람의 이름과 나이가 알고 싶다면 df.loc['논현동'] 을 실행합니다.

그리고 논현동 사는 사람의 나이만 알고 싶다면 df.loc['논현동','age'] 를 입력해주면 됩니다.

만약 다시 앞에 index 부분을 살리고 싶으면 df.reset_index(inplace = True)를 실행해 주시면 됩니다.

 

*긴 글 읽어주셔서 감사합니다.

728x90