• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

reset_index() 업데이트

23.11.19 00:48 작성 조회수 147

0

판다스 Index객체 이해 강의에서 사용한 예제를 그대로 적용하니 문제가 생겨 질문드립니다

reset_index()에 업데이트가 진행되어 칼럼명을 자동으로 바꿔주는 것 같은데 맞나요?

value_counts()를 통해 titanic_df['Pclass']의 객체를 얻으면 기존에는 Name:Pclass 로 출력되었던 것 같은데, 이제는 value_counts()를 통해 얻은 모든 객체의 Name이 count로 표기되고 이렇게 name이 count인 객체에 한해 reset_index()를 적용했을 때 칼럼명을 자동으로 적절히 바꾸어주는 것 같습니다

답변 1

답변을 작성해보세요.

0

안녕하십니까,

음, 강의에서도 value_counts()를 통해 얻은 모든 객체의 Name이 count로 표기되지 않나요? 원래도 value_counts()하면 그렇게 표시됩니다만,

value_counts = titanic_df['Pclass'].value_counts()

print(value_counts)

하면,

3    491
1    216
2    184

여기서 3, 1, 2 가 index 값이고, 이걸 다시 reset_index()하면 아래와 같이 나옵니다만...

value_counts = titanic_df['Pclass'].value_counts().reset_index()

print(value_counts)

 index  Pclass
0      3     491
1      1     216
2      2     184

 

제가 강의에서 다르게 설명 드린건지요? 만약 그렇다면 해당 강의의 몇분 몇초 영상인지 부탁드리겠습니다.

 

감사합니다.

이상현님의 프로필

이상현

질문자

2023.11.20

안녕하세요,

교수님께서 강의 중 따로 언급하시진 않았습니다만, 섹션 1의 24강 '판다스 Index객체 이해' 강의의 14:00 장면부터 보면 value_counts()와 reset_index()의 결과로 다음과 같이 출력됩니다.

 

image

하지만 현재 jupyter notebook에서 pandas 2.0.3 버전을 import해 동일한 코드를 실행시키면 다음과 같은 결과가 출력됩니다.

 

image

### before reset_index ### 하단의 객체 Name이 Pclass에서 count로 변경된 것을 볼 수 있고, ### After reset_index### 하단 객체의 칼럼명이 index->Pclass, Pclass->count로 변경된 것을 확인할 수 있습니다.

하지만 value_counts() 함수를 통해 얻은 Series가 아닌 DataFrame에 reset_index()를 적용시키면 기존과 같이 index라는 이름의 칼럼이 추가되는 것으로 보아, value_counts() 함수를 통해 얻은 Series 객체에만 한정적으로 적합한 칼럼명을 자체적으로 적용하는 것으로 생각됩니다.

때문에 다음 line의 new_value_counts_01.rename(columns={'index' : 'Pclass', 'Pclass' : 'Pclas_count'}) 코드의 실행 결과도 다음과 같이 기존과 다르게 출력됩니다.

 

image

Plcass여야 할 칼럼명이 Pclass_count로 출력되며 Pclass_count여야 할 칼럼명이 count로 출력됩니다.

 

위와 같은 상황이 pandas 업데이트로 인해 생기는 것이 맞는지 확신할 수가 없어 질문드립니다.

 

감사합니다

판다스가 2.x 대로 upgrade되더니, 이렇게 변경이 되었군요.

이렇게 바뀌는게 value_counts()를 사용할 때 직관적으로 이해하기가 더 쉬울것 같습니다.

네, 판다스 upgrade 로 인한 변경 맞습니다. 강의는 제가 pandas 1.x 버전으로 강의한 내용입니다.

좋은 정보 감사드립니다.