edwith_python_(2)결측치 제거 및 데이터 요약
Updated:
edwith 부스트코스 파이썬으로 시작하는 데이터 사이언스 를 공부하는 과정입니다.
지난 포스트 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 : 열 기준
다음 포스트 edwith_python_(3)기초 통계값 확인하기
Leave a comment