728x90
위 데이터 프레임은
컬럼 정보 :
Preg=no. of pregnancy
Plas=Plasma
Pres=blood pressure
skin=skin thickness
test=insulin test
mass=body mass
pedi=diabetes pedigree function
age=age
class=target(diabetes of not, 1:diabetic, 0:not diabetic)에 따른 당뇨병 환자의 데이터이다.
이 데이터프레임으로 당뇨병을 분류하는 모델을 만드려고 한다.
위 데이터 프레임을 읽어보니 'class'컬럼은 0이 나올 수 있는 컬럼이지만, test와 같은 컬럼에서는 0이 나오면 안된다.
처음에는
df.isna().sum()
을 통해 NaN 결측치가 없어서 그냥 진행했지만, 좋지 않은 인공지능을 만들게 된 것 같아서 다시 확인해보니, 결측치를 다른 숫자 0으로 표기가 되어있었다.
그래서 'class'컬럼 제외 0으로 되어있는 숫자들을 NaN으로 바꿔주는 코드를 아래와같이 작성했다.
df.loc[:,'Plas':'age']=df.loc[:,'Plas':'age'].replace(0, np.nan)
이후
df.isna().sum()
의 결과는 아래 사진과 같이 결측치가 많았다.
1. nan을 없애고, 인공지능 개발하는 방법과
2. 다른 값으로 채우는 방법 중
각 컬럼의 평균을 구해 그 값으로 채워주는 방법을 선택했다.
df = df.fillna(df.mean())
결과는 아래 사진과 같다.
'디버깅 ( 오류 해결 과정 )' 카테고리의 다른 글
MySQL - foreign key constraint fails 에러 ERROR CODE : 1451 해결방법 (1) | 2022.12.08 |
---|---|
MySQL - workbench 에서 업데이트할때 safe update mode Code:1175 해결방법 (1) | 2022.12.06 |
파이썬 pandas,데이터 시각화 실습 문제풀이 오류 해결 (0) | 2022.11.29 |
Python파이썬 pandas 문자열 함수 사용 에러 (0) | 2022.11.25 |
Python파이썬 pandas DataFrame 데이터 억세스 실습문제 해결 (0) | 2022.11.24 |