import pandas as pd
df.fillna(value = '') # 결측값을 원하는 값으로 변경 가능
df.dropna() # 행에 결측값이 있으면 그 행을 버린다.
df.dropna(axis = 0) # axis = 0 은 행, 1은 열
df.dropna(thresh = 2) # thresh hold 값을 주어 결측값이 2개 이상이면 버림.
df.interpolate(method="linear") # 결측값에 앞 뒤의 값과 직선형으로 값을 넣어줌
df.interpolate(method = 'quadratic') # 결측값을 부드럽게 채워 넣어줌.
df.interpolate(method='time') # datatime 을 사용하면 시간을 넣어줄수도 있음.
replace
import pandas as pd
df.replace(old_value, new_value) # old_value에 기존 값 넣고, new_value에 변경 값 넣는다.
# old_value, new_value에 list, dict, DataFrame 특정 칼럼 값 교체 가능.
df.replace([old_list],[new_list]) # 리스트 끼리 교체 가능
df.replace({old1:new1, old2:new2}) # 특정 값을 맵핑 해서 변경 가능.
df.replace({'col_name':old_val}, {'col_name':new_val}) # 특정 칼럼과 값 맵핑 변경 가능.
특정값 제거
df1.drop(df1.loc[df1['허리둘레'] == 999].index, inplace = True)
# inplace True => 현제 데이터 변경
결측치 최빈값으로 대체
# df['data'].mode()[0] # 최빈값
df.fillna({'Fruit':df['Fruit'].mode()[0],'Age':int(df['Age'].mean())},inplace=True)
# 결측치 최빈값으로 대체
for col in df1.columns:
df1[col].fillna(df1[col].mode()[0], inplace = True)
df1.info()
결측치 확인
df1['열'].isnull().sum().sum()
fillna, dropna 참고 : https://enjoyiot.tistory.com/entry/02-Missing-Data
interpolate 참고 : https://rk1993.tistory.com/entry/Pythonpandas데이터-결측치-처리하기보간법보외법-pandasDataFrameinterpolate
replace 참고 : https://rfriend.tistory.com/265