Python/Pandas Tutorial

[Python] pandas tutorial :: replace nan/na/null

슈퍼짱짱 2021. 1. 14. 13:36
반응형

2020/09/18 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: pandas란? 데이터프레임이란? 시리즈란?

2020/09/19 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: read csv, txt file with pandas

2020/09/21 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Create Data Frame with Dictionary, List

2020/09/21 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Save Pandas Data Frame to CSV file

2020/09/21 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Filtering(Selecting) rows, columns in pandas DataFrame

2020/09/22 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Drop row or column in pandas DataFrame

2020/09/22 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: add row, column

2020/10/07 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: groupby

2020/10/12 - [Python/Pandas Tutorial] - [Python] pandas tutorial :: drop duplicates in pandas

 

[Python] pandas tutorial :: drop duplicates in pandas

2020/09/18 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: pandas란? 데이터프레임이란? 시리즈란? 2020/09/19 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: read csv, txt file with..

leedakyeong.tistory.com

 


 

판다스에서 Null 값 대체하기

 

1. Import padas

import pandas as pd

2. Create Table

실습에 사용한 pandas 예제 table을 만든다.

 

school_id_list = [{'name':'John', 'job':"teacher", 'age':40},
                 {'name':'Nate', 'job':"teacher", 'age':35},
                 {'name':'Yuna', 'job':"teacher", 'age':37},
                 {'name':'Abraham', 'job':"student", 'age':10},
                 {'name':'Brian', 'job':"student", 'age':12},
                 {'name':'Janny', 'job':"student", 'age':11},
                 {'name':'Nate', 'job':"teacher", 'age':None},
                 {'name':'John', 'job':"student", 'age':None}]
df = pd.DataFrame(school_id_list, columns = ['name','job','age'])

 

선생님 한 명과 학생 한 명에 None을 포함한 테이블을 만들었다.

 

 


3. Table 정보 확인

df.shape으로 8개의 행, 3개의 열로 이루어진 테이블이라는 것을 확인했다.

이후 df.info()로 테이블의 정보를 확인할 수 있는데, age 컬럼은 총 8개의 행 중 6개만 non-null임을 알 수 있다.

df.isna()df.isnull()로 정확히 어떤 위치에 na/null이 있는지 볼 수 있다.

 

df.isna().sum() 으로 각 컬럼별 na 개수도 확인할 수 있다.


4. NA 다른 값으로 채우기

age 컬럼에 na 가 존재한다. 여기를 특정 값으로 채울 때 .fillna(VALUE) 함수를 사용하면 된다.

 

예) 0으로 채우기

 

df.age = df.age.fillna(0)

 

 

예) 100으로 채우기

 

df.age = df.age.fillna(100)

 

이번에는 선생님인 Nate 는 다른 선생님들 나이의 중앙값, 학생인 John은 다른 학생들 나이의 중앙값으로 채워보겠다.

df['age'].fillna(df.groupby('job')['age'].transform('median'), inplace = True)

 

groupby 를 활용하여 직업별 나이를 계산하고 na 부분을 채워준다. 

결과는 다음과 같다.

 

더보기

참고 :: groupby 결과

 

 

반응형