🗂️ AI

[AICE ASSOCIATE] numeric_only=True, 수치형 데이터 선택

PM 져니 2024. 9. 8. 21:52

mean() 함수, TypeError: agg function failed [how->mean,dtype->object], 'numeric_only=True'로 해결

 

# 평균값 확인하기
airline_group.mean()

# 특정 칼럼 값만 확인하기
airline_group.mean()[['price']]

# groupby를 활용하여 다중 인덱싱(multi-indexing) 설정하기
flight.groupby(['airline', 'arrival_time']).mean()

# 여러 개의 칼럼을 groupby하여 새로운 데이터프레임 생성하기
mul_airline_group=flight.groupby(['airline', 'arrival_time'])
mul_airline_group.mean()

# groupby 후 원하는 데이터만 가지고 오기
flight.groupby(['airline', 'arrival_time']).mean().loc[[('AirAsia','Evening')]]

 

수치형 데이터의 평균값(mean)을 확인하는 mean() 함수를 사용하는 위 다섯 가지 실습 코드를 실행할 때 아래와 같은 오류가 발생했다.

 

TypeError: agg function failed [how->mean,dtype->object]

 

 

이 오류는 평균을 계산하려고 할 때 데이터프레임 내에 수치형이 아닌 문자열과 같은 객체형 데이터가 포함되어 있을 경우 나타난다. 따라서 수치형 데이터만 고려하도록 설정하여 이를 해결할 수 있다.

 

mean(numeric_only=True)

 

numeric_only=True는 Pandas의 mean() 함수에서 사용하는 옵션 중 하나로, 해당 데이터프레임에서 수치형 데이터를 가지는 칼럼에 대해서만 평균값을 계산하겠다는 의미이다. 판다스 이전 버전에서는 이게 기본값이었는데, 업데이트가 되면서 바뀌었다고 한다.

 

# 평균값 확인하기
airline_group.mean(numeric_only_True)

# 특정 칼럼 값만 확인하기
airline_group.mean(numeric_only_True)[['price']]

# groupby를 활용하여 다중 인덱싱(multi-indexing) 설정하기
flight.groupby(['airline', 'arrival_time']).mean(numeric_only_True)

# 여러 개의 칼럼을 groupby하여 새로운 데이터프레임 생성하기
mul_airline_group=flight.groupby(['airline', 'arrival_time'])
mul_airline_group.mean(numeric_only_True)

# groupby 후 원하는 데이터만 가지고 오기
flight.groupby(['airline', 'arrival_time']).mean(numeric_only_True).loc[[('AirAsia','Evening')]]

 

따라서 위와 같이 'numeric_only_True'만 추가로 작성해 실행해 주면 오류 없이 결과 값을 확인할 수 있다.