안녕하세요. 잔재미코딩 Dave Lee 입니다.
최근 처음하는 파이썬 데이터 분석 강의 자료에서, 두 케이스가 최근 pandas 버전에서는 에러가 나는 것을 확인하였습니다. 그래서, 관련 자료에도 해당 에러가 나는 이유와 어떻게 하면 해결할 수 있는지 관련 코드까지 업데이트하였습니다. 관련 자료는 수업자료 다운로드 관련 챕터에서 바로 다운받으실 수 있습니다.
두 케이스 모두 동일한 이슈였는데요. 이 중 하나의 실제 코드로 관련 이슈에 대해 설명드리면 다음과 같습니다.
df.groupby('이름').mean() 메서드는 숫자 컬럼에 대해서만 계산 가능합니다. 기존에는 df.groupby('이름').mean() 호출시, 숫자 컬럼 외에는 자동 제외하고 계산하였으나, 최근 버전에서는 자동 제외되지 않고 있습니다. 그래서, 기존에는 동작하는 관련 코드가 에러가 나는 것을 확인하였습니다. 따라서, 최근 버전의 pandas 에서는 다음과 같이 숫자 컬럼만을 강제로 선택한 후, df.groupby('이름').mean() 을 호출하면 좋을 것 같습니다.
df = pd.DataFrame({
'성별': ['남', '남', '남'],
'이름': ['David', 'Dave', 'Dave'],
'수학': [100, 50, 80],
'국어': [80, 70, 50]
})
df
# df.groupby('이름').mean() 메서드는 숫자 컬럼에 대해서만 계산 가능합니다.
# 기존에는 df.groupby('이름').mean() 호출시, 숫자 컬럼 외에는 자동 제외하고 계산하였으나, 최근 버전에서는 자동 제외되지 않으므로,
# 다음과 같이 숫자 컬럼만을 강제로 선택한 후, df.groupby('이름').mean() 을 호출하면 좋을 것 같습니다.
selected_columns = ['이름', '수학', '국어']
df = df[selected_columns]
df.groupby('이름').mean()
감사합니다.