인공지능/데이터 분석

[Pandas] DataFrame의 mean() 특정 열 누락, 전체 평균 값 안 나올 때 해결법

Prcnsi 2022. 1. 24. 13:39
728x90

데이터 분석을 하면서 데이터 프레임의 평균값을 구해야 하는데 아래와 같이 뜨거나(전체가 안 나옴) 나오긴 하는데 특정 열이 누락되어서 전체 로우 별로 평균이 안 나오면 보통 다음과 같은 프로세스를 거치면 해결됩니다.

1. 결측치 있을 때

먼저 결측치가 있는지 확인해 보고 있다면 아래와 같이 바꿔줍니다.
보통 결측치가 있으면 공백으로 있는데 이를 판다스에서 공백으로 인식을 못해서 넘 파이의 공백 형태(np.nan) nan값으로 바꿔주고 평균값 혹은 중앙값 등으로 전체 결측치를 다 처리한 후에 다시 mean메소드를 사용하면 될 것입니다.

데이터 프레임명. replace(' ', np.nan, inplace=True)

+결측치 확인
데이터프레임명.isnull().sum()으로 확인 가능합니다.

2. 결측치 없을 때

만약 결측치를 다 처리해도 평균값이 안 찍힌다면 숫자가 문자로 저장되어 있을 확률이 높습니다. 이럴 때는 to_numeric이라는 메서드로 객체를 숫자로 바꿔주면 됩니다.

데이터 프레임명=데이터프레임명.apply(pd.to_numeric)


참고로 replace는 변수에 재할당을 안 해줘도 되지만 apply(pd.to_numeric)은 꼭 재할당을 해줘야합니다.(≒inplace=True)

저는 데이터 전처리할 때 이 에러를 많이 만났는데 보통 위 두 방법으로 하면 거의 해결되더군요.
그럼 도움 되시길 바랍니다:)

728x90