행정안전부_일반음식점 데이터를 기준으로 데이터 정리를 해보았다.
먼저 판다스를 이용하여 파일을 로드했다
정부 관련 파일들은 대부분 인코딩 형식이 cp949이다.
encoding='cp949'를 추가한다.
데이터 프레임은 206만 123개의 row가 있다.
전국 음식관련 업종이 206만여개가 있다는 뜻이다.
하지만 영업상태명을 보았을때 폐업이 있는 것으로 보아 현재 영업중인 파일만 출력하기로 한다.
# 폐업구분
영업상태명컬럼에서 폐업이 아닌 데이터만 남긴다.
2,060,123 rows -> 691,795 rows 약 1/3의 데이터 드롭
# 컬럼 정리
불러온 데이터 프레임의 컬럼을 본다면 실제로 결측치인 경우가 많다.
필요 없는 데이터와 함께 계속 데이터 프레임을 확인하며 데이터 프레임을 드롭한다.
# 지자체 기준으로 정렬
해당 데이터는 개방자치단체코드라는 컬럼으로 각 지자체 라벨링이 되어있다.
len 을 이용하여 df_label의 개수를 확인하여보면 229개로 나온다.
기초지자체의 개수를 확인하여 보니 229개가 맞다.
# 데이터 재정렬
기초지자체를 기준으로 파일을 따로 관리하고자 한다.
따라서 쉽게 정리하기 위해 개방자치단체코드를 기준으로 재정렬한다.
# csv파일로 출력
먼저 변환 과정이 얼마나 시간이 걸리는지를 확인하기 위하여 tqdm모듈을 임포트 하였다.
dfs 라는 빈 리스트를 만들고. 229개의 개방자치단체 코드와 일치하면 정렬된 파일을 리스트에 추가한다.
df_sorted['개방자치단체코드'] == code
일때 temp에 해당 컬럼들을 temp로 정의해놓고
dfs 리스트에 추가한다.
csv 파일로 저장한 결과 글자가 다 깨졌다.
# 인코딩 형식 지정
정부 csv 파일은 대부분 cp949 이다.
인코딩형식을 지정하지 않아서 발생하는 것으로 utf-8-sig로 설정하면 위와 같은 문제를 해결 할 수 있다.
'Python' 카테고리의 다른 글
Python01. 파이썬 기초 (0) | 2023.04.28 |
---|