Notice
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 머신러닝
- CodeEngn
- php
- abex crackme
- 컴퓨터 구조
- html
- 백준 알고리즘
- 웹
- 보안
- 백준
- 리버싱 문제
- 알고리즘
- 넘파이
- sql injection
- 리버싱
- 인공지능
- webhacking
- C언어
- 해킹
- writeup
- 웹해킹
- MySQL
- 회귀 수식
- 자바스크립트
- 어셈블리어
- 리버싱 워게임
- webhacking.kr
- 리눅스
- 리액트
- 워게임
Archives
- Today
- Total
인공지능 개발일지
[Pandas] DataFrame의 mean() 특정 열 누락, 전체 평균 값 안 나올 때 해결법 본문
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
'인공지능 > 데이터 분석' 카테고리의 다른 글
[데이터 분석] 넘파이(NumPy) 튜토리얼 겸 기초 총 정리 (feat. reshape에서 -1의 의미) (0) | 2022.05.01 |
---|---|
[Pandas] DataFrame 셀에 리스트(ndarray) 입력 / ValueError: Must have equal len keys and (0) | 2022.03.17 |
[Pandas] 데이터프레임 셀 반복문 빠르게 돌리는 법 / Pandas를 Numpy로 변환 (0) | 2022.02.28 |
[Python] Pandas DataFrame을 numpy 배열로 변환하는 방법 (0) | 2022.02.22 |
[DACON] 잡케어 추천 알고리즘 데이터 분석 (0) | 2022.01.15 |