본문 바로가기
데이터분석/판다스

03. 결측값(NULL, NaN)

by 사라리24 2024. 5. 24.
SMALL

 

1. 결측값(NULL, NaN)

  • 비어 있는 값. 즉, 결측값이라고 부름
  • pandas에서는 NaN(Not a Number)로 표기 된 것은 모두 결측값으로 취급

 

  • 결측값 확인하기
  
       # 원래 테이블 확인
       df
 
        # 비어있는 값 확인(비어있는 값 = true) _ Boolean  값은 뜨지 않음
        df.isnull()
        df.isna()
 
 

 

  • '키'열에서 null 값인 행 찾기
 
 
 
        df['height'].isna()
 
        df[df['height'].isna()]
 
        df[df['height'].isna()]['name']
 
        df[df['height'].notnull()]
 
 
  




 

  • 문제: 회사가 있는 연예인의 이름, 회사, 키를 출력
 
 
        # 회사가 있는 연예인의 이름, 회사, 키를 출력
        # 단, loc를 사용

        df.loc[df['company'].notnull(), ['name', 'company', 'height']]
 
 
  

2. fillna() : Null값을 채워주는 함수

  •  

 

  • fillna()로 Null 값 채워주기
 
 
 
         #null 값 확인
        df['height']
 
        # null값에 0이 들어감
          df['height'].fillna(0)
          # df에 반영하지 않음
          # df 자체가 바뀌는 것은 아님
 
 
          # 반영 할라면
          df['height'].fillna(0, inplace=True)
 
 
  








* 반영하기
df['열'].fillna(바꿀 값,inplace=True)
실행x:실제로 표가 바뀌기 때문에 보통 복사해서 실행함




 

  • null 값에 중간값 넣기
 
 
 
            # 원본 데이터프레임 `df`의 복사본을 생성하여 원본이 변경되지 않도록 합니다.
            df_copy = df.copy()

            # 복사된 데이터프레임의 'height' 열의 평균 값을 계산하고 출력합니다
            height = df_copy['height'].mean()
            height

            # 'height' 열에서 누락된 값(NaN)을 계산된 평균 값으로 대체한 후 출력합니다.
            df_copy['height'] = df_copy['height'].fillna(height)
            df_copy['height']
 
 
 

* 중간값 * null 값 중간값으로 변경





 

  • null값에 중위값 넣기
 
 
        # 원본 데이터프레임 `df`의 복사본을 생성하여 원본이 변경되지 않도록 합니다.
        df_copy = df.copy()
 
          height = df_copy['height'].median() #50%값, 중위
          height
 
          df_copy['height'].fillna(height, inplace=True)
          df_copy['height']
   
 
 

 

3. dropna():  결측값이 있는 행, 열 제거

  • 결측값이 한개라도 있는 경우 삭제

 

 

  • dropna()를 사용하여 결측값이 있는 행, 열 제거
  
        # 원본 데이터프레임 `df`의 복사본을 생성하여 원본이 변경되지 않도록 합니다.
        df_copy = df.copy()
 
          # 결측값이 있는 행을 제거
          df_copy.dropna()  # axis=0 (행 삭제 생략)
 
          # 결측값이 있는 열을 제거
          df_copy.dropna(axis=1)
  
 





 

 

'데이터분석 > 판다스' 카테고리의 다른 글

06. 데이터프레임 합치기  (0) 2024.05.24
05. 그룹, 중복값제거  (0) 2024.05.24
04. 행, 열 추가 삭제, 통계함수  (0) 2024.05.24
02. 데이터 정보, 정렬, 범위, 인덱싱  (0) 2024.05.24
01. 판다스(Pandas)  (0) 2024.05.22