서울시 공중화장실 공공데이터를 가지고 아주 간단한 데이터 시각화, 분석 실습을 해 보려고 합니다.
먼저 이번 포스팅에는 파이썬 pandas 라이브러리를 이용해서 데이터 전처리 작업한 것을 간단히 정리해 보았습니다.
데이터 시각화, 분석은 태블로 프로그램을 이용하여 마친 뒤 다음 포스팅에 이어서 올리도록 하겠습니다.
https://data.seoul.go.kr/dataList/OA-1370/S/1/datasetView.do
사용한 데이터 링크입니다.
1. pandas : 필요없는 컬럼 삭제, 인덱스 지정
import pandas as pd
t = pd.read_csv("toilet.csv", engine='python', encoding = "cp949")
t
pd.read_csv를 이용해서 데이터를 불러오는데 한글 깨짐이 좀 있어서 encoding = "cp949"를 이용해주니 깔끔하게 불러오기가 잘 되었습니다.
먼저 value_counst()를 이용해서 대략적으로 확인해보니 별 다른 정보가 담겨있지 않은 관계로 새주소명, 생성일 컬럼은 삭제하기로 결정했습니다. 또, 고유번호에 중복값이 없는것을 확인한 관계로 고유번호를 인덱스로 지정해주겠습니다.
# 새주소명, 생성일 컬럼 드랍(삭제)
t = t.drop('새주소명', axis=1)
t.drop('생성일', axis = 1, inplace = True)
# 고유번호 컬럼 중복값 없는지 확인
len(t['고유번호'].unique()) == len(t['고유번호']) # True
# 고유번호 인덱스화
t.set_index('고유번호', inplace = True)
필요없는 컬럼을 삭제하고 인덱스를 고유번호로 바꾸어 주니 어느정도 보는 게 깔끔해졌습니다.
이제 구명과 법정동명을 확인해보려고 하는데요.
2. 구명
t['구명'].value_counts()
value_counts()를 이용해서 확인해 보니
- 끝에 '구'가 붙어 있지 않은 구
- 오타 작렬한 구
- 빌딩이 왜 여기서 나와? 갈암구는 또 어디야? 갈현송방차풀소는 뭐야?
이것들을 해결해줘야 할 것 같습니다.
먼저 구가 안붙어있는 것들에 구를 붙여줘 보기로 했습니다. (예:노원 > 노원구)
t['구명'] = t['구명'].apply(lambda x: x + '구'
if x in ['동작', '금천', '강서', '양천', '노원', '관악', '영등포', '서대문']
else x)
'구명'이 동작/금천/강서/양천/노원/관악/영등포/서대문 중 하나인 경우
컬럼에 apply와 lambda 함수를 이용해서 끝에 '구'를 붙여 줬습니다. 해당사항이 없는 경우는 그냥 놔두도록 처리했습니다.
t['구명'].value_counts()
그 외 갈현송방차풀소~남서울빌딩에 해당하는 row들은 그냥 제거하겠습니다.
# 이것들에 해당하는 '구명'을 가진 row들을 제외한(~) 줄만 남겨서 t에 재할당
t = t[~t['구명'].isin(['갈현송방차풀소', '송북구', '송파ㅜ', '영등로구',
'영등표구', '송파두성빌딩', '갈암구', '구로수', '남서울빌딩'])]
len(t['구명'].value_counts().index)
# 25
혹시 몰라 확인해 보니 총 25개의 구가 있는것이 잘 확인되었습니다. 검색해보니 서울에는 25개 자치구와 426개 행정동이 있다고 하네요! 서울 살면서도 계속 까먹어요... 상식으로 외워둬야지.
법정동은 426개를 일일이 확인하기 불가능 + 의미가 없는 것 같아서 일단 놔두도록 하겠습니다. 다음 포스팅에는 태블로를 이용하여 간단한 시각화를 해서 가져오도록 하겠습니다!
'Data Science > ML 머신러닝' 카테고리의 다른 글
ML | 캐글 Kaggle 신용카드 데이터 EDA + 모델링 실습 (0) | 2024.05.10 |
---|---|
ML | 파이썬 scikitlearn XGBoost 래퍼 클래스 - XGBoostClassifier (0) | 2024.05.08 |
ML | 파이썬 XGBoost API 사용하여 위스콘신 유방암 예측하기 (0) | 2024.05.08 |
EDA | 서울특별시 공중화장실 02 _ 태블로를 이용해 시각화하기 (0) | 2024.04.17 |
웹크롤링 | 연금복권720+ 당첨 데이터 분석해보기 (파이썬 requests, BeautifulSoup) (1) | 2024.04.13 |