[서울상권분석] 스타벅스 vs 이디야 매장 위치 비교하기(1편-전처리 과정)

2020. 12. 17. 22:49PROJECT/Python_공간데이터분석

728x90
반응형

이디야커피의 초기입점전략은 "스타벅스 옆"이였다고 한다.

과연 지금도 그럴까? 

소상공인시장진흥공단 상가업소정보 데이터를 활용하여 스타벅스와 이디야 매장위치를 비교해본다.

 

  • 텍스트 데이터 정제하기 - 대소문자로 섞여있는 상호명을 소문자로 변경하고 상호명을 추출한다.
  • 텍스트 데이터에서 원하는 정보 추출하기 - 브랜드명 컬럼을 만들고 구별매장 수 분석하기

  • 데이터 불러오기

공공데이터 포털 : 소상공인시장진흥공단 상가업소정보 데이터 활용

pd.read_csv로 파일을 불러온다.

shape를 통해 불러온 csv파일의 크기를 확인한다.

  • 데이터 미리보기
df.head()

 

  • info 보기

info를 사용하여 데이터의 전체적인 정보를 본다.(데이터 사이즈, 타입, 메모리 사용량 등)

 

  • 결측치 보기

isnull()을 사용하여 데이터의 결측치를 본다.

결측치는 True로 값이 있다면 False로 표시된다.

True는 1과 같기 때문에 sum()을 사용해서 더하게 되면 합계를 볼 수 있다.

 

  • 사용하지 않는 컬럼 제거하기

사용하는 컬럼만 따로 모아서 사용한다.

'상호명', '상권업종대분류명', '상권업종중분류명', '상권업종소분류명', '시도명', '시군구명', '행정동명', '법정동명', '도로명주소', '경도', '위도'

df.shape를 통해 크기를 확인한다.

또한, info를 사용하여 제거 후 메모리 사용량을 볼 수 있다.

  • 색인으로 서브셋 가져오기
  • 서울만 따로 보기

시도명이 서울로 시작하는 데이터만 본다.

df.shape를 통해 크기를 확인한다.

  • 일부 텍스트가 들어가는 데이터만 가져오기

상호명에서 브랜드명을 추출한다.

대소문자가 섞여있을 수도 있기 때문에 대소문자를 변환해준다.

str.lower()을 이용하여 "상호명_소문자" 컬럼을 만든다.

 

다음,

df_seoul.loc[df_seoul["상호명_소문자"].str.contains("이디아|이디야|ediya"), "상호명_소문자"]

이디야|이디아|ediya

스타벅스|starbucks 를 가져와 갯수를 세어본다.

이디야 : 543개

스타벅스 : 506개 매장이 있는 것을 확인할 수 있다.

"상호명_소문자" 컬럼으로 스타벅스와 이디야커피 데이터를 합쳐준다.

'~'은 not을 의미한다. 결측치를 이디야로 채워준다.


다음편에서는 정제한 텍스트 데이터로 시각화를 해본다!