티스토리 뷰

파이썬

결측치 처리

코린이도이 2023. 3. 26. 19:01
  • 문제: 주어진 데이터에서 결측치가 80%이상 되는 컬럼은(변수는) 삭제하고, 80% 미만인 결측치가 있는 컬럼은 'city'별 중앙값으로 값을 대체하고 'f1'컬럼의 평균값을 출력하세요!

1. 먼저 데이터 살펴보기(결측값 확인하기)

df = pd.read_csv('Desktop/basic1.csv')
# 데이터 보기
df.head(5)
# 각 열이 결측값을 얼마나 갖고 있는지 확인하기
df.isnull().sum()

2. 데이터에서 결측치가 80%이상 되는 컬럼(변수) 찾기

# df가 어떻게 이루어져 있는지 보기(몇개의 변수들의 값으로 이루어져 있는지)
df.shape
# df 행 수의 값으로 나눠 결측값 비율 찾기
df.isnull().sum()/df.shape[0]

3. 결측치가 80%이상 되는 컬럼(변수) 삭제하기

# 조건에 안맞는 결측치 있는 열 삭제하기
df = df.drop(['f3'], axis = 1)

4. 80% 미만 결측치가 있는 변수의 city별 중앙값 찾아서 변수 설정하기

# groupby 함수 이용하여 city별 중앙값 찾기
k, d, b, s = df.groupby('city')['f1'].median()

5. 결측치 값에 중앙값으로 대체하기

# map 함수를 이용하여 각 결측치 값 안에 중앙값으로 대체하기
df['f1'] = df['f1'].fillna(df['city'].map({'서울':s, '경기':k, '부산':b, '대구':d}))

6. 'f1'의 평균 구하기

df['f1'].mean()

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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
글 보관함