inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (활용편5) - 데이터 분석 및 시각화

그룹화

goupby.mean() 오류

742

조문영

작성한 질문수 1

1

  1. 그룹화 강의에서 df.groupby('학교').mean() 이 문을 실행했을때 TypeError가 나타나는데 강사님께서는 결과값이 잘 나옵니다. 어떤 차이인지 그리고 어떤 부분이 틀린건지 알고싶습니다.
    자료형 문제인거 같은데 정확히 모르겠어서 문의드립니다.

     

    <데이터>

    <오류 내용>

     

python pandas groupby

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

사용자님께서 제시한 오류는 TypeError: agg function failed [how->mean,dtype->object]로, 이는 df.groupby('학교').mean() 실행 시 ‘학교’를 기준으로 그룹화한 뒤 평균을 계산하고자 할 때 특정 컬럼의 데이터 타입이 숫자형이 아닌 ‘object’ 형태로 인식되어 발생한 문제입니다. Pandas에서 ‘object’ 데이터 타입은 대개 문자열을 의미하며, 이러한 컬럼에 대해 평균(mean)과 같은 수치 연산을 진행할 수 없습니다.

해당 오류를 해결하기 위해서는 숫자로 변환 가능한 컬럼만 선택하거나, 혹은 문자열로 인식될 수 있는 컬럼을 제외하고 숫자형 컬럼에 대해서만 평균을 계산해야 합니다. 만약 ‘NaN’ 값으로 인해 숫자형 컬럼이 문자열로 인식되는 경우, 해당 컬럼을 숫자형으로 명시적으로 변환해주어야 합니다. 예를 들어, pandas의 to_numeric 함수를 사용해 변환을 시도할 수 있습니다.

다음은 ‘NaN’ 값을 포함할 수 있는 ‘과학’ 컬럼을 숫자형으로 변환하는 예시 코드입니다:

import pandas as pd
import numpy as np

# 데이터프레임 df를 예시로 들며, '과학' 컬럼에 NaN 값을 숫자형으로 변환합니다.
df['과학'] = pd.to_numeric(df['과학'], errors='coerce')

# 변환 후 df.groupby('학교').mean() 실행

errors='coerce' 옵션은 변환할 수 없는 값을 NaN으로 설정하기 때문에 수치 연산이 가능해집니다. 모든 컬럼에 대해 해당 작업을 수행한 후 평균을 다시 계산해 보세요.

slack 알림 연동 강의 관련

0

3

1

가상환경 설정이 안됩니다

0

3

0

supabase_key 관련

1

16

2

프롬프트의 영문 버전을 만들 때, 출력 규칙에 포함된 한글 부분은 영어로 번역하지 않고 그대로 유지하면서, 영문 편과 한글 편을 한 번에 함께 출력하려면 어떤 워크플로우로 구성하면 좋을까요?

0

13

0

프로그램은 뭘 사용하시는 건가요??

1

16

2

수업자료와 노션 공유 문제

0

24

3

python run.py 실행시 에러 문제

1

53

2

조건 반복문 질문: for 문 ?

0

33

0

54강 4분 41초에서 질문 있어요.

0

33

1

IN[ ] 번호 질문

0

203

1

존나 재밌다....형 왜이렇게 강의 잘해? 형 신이야? 사랑해

0

383

1

Group By 후 연산 적용 시 에러 나는 분들 참고하세요.

2

970

1

결측치 조건 질문있습니다!

0

278

1

오류

0

356

1

Capitalization 결과를 원 데이터에 반영시키려면?

0

377

1

에러 설명 좀

0

306

1

특정 컬럼만 가져오는 명령에서 아래와 같은 에러 발생 설명 좀 해주세요

0

307

1

구글 코랩으로 해도 될까요?

0

553

0

filter 역으로 적용

0

253

1

1

0

252

1

인구 피라미드 프로젝트에서...

0

363

0

출산율 수 및 합계 출산율에서 외부 범례 처리

0

295

0

여러 그래프관련 x축 값 rotationa 설정 방법

0

287

0

산점도 그래프 강의중 xlabel, ylabel 관련

0

226

0