edwith_python_(2)결측치 제거 및 데이터 요약

Updated:

edwith 부스트코스 파이썬으로 시작하는 데이터 사이언스 를 공부하는 과정입니다.

지난 포스트 :point_right: edwith_python_(1)데이터 살펴보기


1.6 결측치

결측치 개수 정보를 null_count 변수에 넣기
null_count = df.isnull().sum()
null_count

*결과*

상가업소번호           0
상호명              0
지점명          89989
상권업종대분류코드        0
상권업종대분류명         0
상권업종중분류코드        0
상권업종중분류명         0
상권업종소분류코드        0
상권업종소분류명         0
표준산업분류코드      4922
표준산업분류명       4922
시도코드           379
시도명            379
시군구코드          379
시군구명           379
행정동코드            0
행정동명           379
법정동코드           55
법정동명            55
지번코드             0
대지구분코드           0
대지구분명            0
지번본번지            0
지번부번지        19256
지번주소             0
도로명코드            0
도로명              0
건물본번지            0
건물부번지        80731
건물관리번호           0
건물명          44882
도로명주소            0
구우편번호           12
신우편번호            2
동정보          83929
층정보          47291
호정보          75784
경도               0
위도               0
dtype: int64
결측치 정보를 막대그래프로 표현해서 살펴보기
null_count.plot.barh(figsize=(5,7))

*결과*

결측치 정보를 데이터프레임 형태로 만들기
df_null_count = null_count.reset_index()
df_null_count.head()

*결과*

  index 0
0 상가업소번호 0
1 상호명 0
2 지점명 89989
3 상권업종대분류코드 0
4 상권업종대분류명 0

1.7 컬럼명 변경하기

df_null_count 변수에 담겨있는 첫 행의 컬럼명을 “컬럼명”, “결측치수”로 변경
df_null_count.columns = ["컬럼명", "결측치수"]
df_null_count.head()

*결과*

  컬럼명 결측치수
0 상가업소번호 0
1 상호명 0
2 지점명 89989
3 상권업종대분류코드 0
4 상권업종대분류명 0

1.8 정렬하기

df_null_count 에 있는 결측치 수 컬럼을 결측치가 많은 순으로 정렬하고, 상위 10개 값만 담아서 df_null_count_top 변수에 담기
df_null_count_top = df_null_count.sort_values(by="결측치수", ascending=False).head(10)
df_null_count_top

*결과*

  컬럼명 결측치수
2 지점명 89989
34 동정보 83929
28 건물부번지 80731
36 호정보 75784
35 층정보 47291
30 건물명 44882
23 지번부번지 19256
9 표준산업분류코드 4922
10 표준산업분류명 4922
11 시도코드 379

1.9 특정 컬럼만 불러오기

결측치가 많은 상위 10개 컬럼은 삭제하고 “컬럼명”이라는 컬럼 값만 가져와서 drop_columns 변수에 담기
drop_columns = df_null_count_top["컬럼명"].tolist()
drop_columns

*결과*

['지점명',
 '동정보',
 '건물부번지',
 '호정보',
 '층정보',
 '건물명',
 '지번부번지',
 '표준산업분류코드',
 '표준산업분류명',
 '시도코드']
데이터프레임에서 drop_columns에 해당하는 정보만 불러오기
 df[drop_columns].head()

*결과*

  지점명 동정보 건물부번지 호정보 층정보 건물명 지번부번지 표준산업분류코드 표준산업분류명 시도코드
0 NaN NaN NaN NaN NaN 산호한양아파트 NaN Q86201 일반 의원 41.0
1 NaN NaN NaN NaN 4 NaN 14.0 Q86201 일반 의원 11.0
2 NaN NaN NaN NaN NaN 한라프라자 1.0 Q86201 일반 의원 41.0
3 NaN NaN NaN NaN 5 NaN 1.0 NaN NaN 26.0
4 수지점 NaN NaN NaN 1 NaN 2.0 G47811 의약품 및 의료용품 소매업 41.0

1.10 제거하기

drop_columns에 해당하는 열 드롭
df = df.drop(drop_columns, axis=1)

axis = 0 : 행 기준 axis = 1 : 열 기준

다음 포스트 :point_right: edwith_python_(3)기초 통계값 확인하기

Categories:

Updated:

Leave a comment