작성
·
201
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
제가 강의에서 다르게 설명 드린건지요? 만약 그렇다면 해당 강의의 몇분 몇초 영상인지 부탁드리겠습니다.
감사합니다.
판다스가 2.x 대로 upgrade되더니, 이렇게 변경이 되었군요.
이렇게 바뀌는게 value_counts()를 사용할 때 직관적으로 이해하기가 더 쉬울것 같습니다.
네, 판다스 upgrade 로 인한 변경 맞습니다. 강의는 제가 pandas 1.x 버전으로 강의한 내용입니다.
좋은 정보 감사드립니다.
안녕하세요,
교수님께서 강의 중 따로 언급하시진 않았습니다만, 섹션 1의 24강 '판다스 Index객체 이해' 강의의 14:00 장면부터 보면 value_counts()와 reset_index()의 결과로 다음과 같이 출력됩니다.
하지만 현재 jupyter notebook에서 pandas 2.0.3 버전을 import해 동일한 코드를 실행시키면 다음과 같은 결과가 출력됩니다.
### 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'}) 코드의 실행 결과도 다음과 같이 기존과 다르게 출력됩니다.
Plcass여야 할 칼럼명이 Pclass_count로 출력되며 Pclass_count여야 할 칼럼명이 count로 출력됩니다.
위와 같은 상황이 pandas 업데이트로 인해 생기는 것이 맞는지 확신할 수가 없어 질문드립니다.
감사합니다