-
판다스 데이터 전처리 : 주소, 시도명 통일 및 변환하기데이터 분석 공부/파이썬 데이터 분석 2024. 4. 11. 17:46728x90
주소 데이터를 받아온 뒤, 각 주소의 시도명을 담은 컬럼을 만들고자 합니다.
아래의 경우, 같은 시도명인데도 서울, 서울특별시, 서울시, 서울동대문구, 서울특별실 등 다양한 값으로 나와 있는데요.
이러한 데이터를 하나의 이름으로 통일시켜 변환해 주는 방법을 연습합니다.
우선 아래와 같이, 띄어쓰기 기준 첫번째 값들을 'sido'라는 컬럼명 안에 저장해 주었습니다.
unique_seven['sido'] = unique_seven.address.apply(lambda x : x.split()[0])
먼저, '서울'이 들어가는 값은 모두 '서울특별시'로 변환해 담아주었습니다.
loc 를 통해 위치를 지정해 주어야 조건을 만족하는 row & 'sido' column 에서만 변환이 이루어지겠죠.
# 서울, 서울시, ... -> 모두 서울특별시로 통일 unique_seven.loc[unique_seven['sido'].str.find('서울') > -1, 'sido'] = '서울특별시'
같은 방법으로 모든 시도명에 대해 변환을 할 수도 있겠지만,
딕셔너리에 찾을 값 (key) 과 변경할 값 (value) 을 담아, key를 포함할 경우 value로 변환한다는 lambda 함수를 적용합니다.
# 시도 이름 통일 change_dict = {'서울':"서울특별시", '경기':"경기도", '인천':"인천광역시", '강원':"강원도", '충북':"충청북도", '충남':"충청남도", '대전':"대전광역시", '경북':"경상북도", '경남':"경상남도", '대구':"대구광역시", '울산':"울산광역시", '부산':"부산광역시", '전북':"전라북도", '전남':"전라남도", '광주':"광주광역시", '제주':"제주특별자치도", '세종':"세종특별자치시"} for key, value in change_dict.items(): unique_seven['sido'] = unique_seven['sido'].apply(lambda x: value if key in x else x)
그렇게 하고도 변환되지 않은 데이터는 몇 개 남지 않았으므로, 수동으로 변경해 주었습니다.
'데이터 분석 공부 > 파이썬 데이터 분석' 카테고리의 다른 글
git 으로 팀 프로젝트하기 - add, commit, push, checkout, status (0) 2024.04.18 피보나치 수열을 만드는 n가지 방법 ㅡ 재귀함수, 제너레이터, yield, next, stack 자료구조 (0) 2024.04.15 pandas 데이터 전처리 : 중복값 제거(duplicated), 행열 재구조화(melt) (0) 2024.04.11 파이썬 판다스(Pandas) 자주 쓰는 함수, 기능 연습 (0) 2024.04.11 스포츠 데이터 파이썬 크롤링 -Selenium, By.CSS_SELECTOR, pickle (1) 2024.04.06