.. Cover Letter

ㅇ 프로젝트/TEAM_서울시 교통 인프라 분석

7. 서울시 상권데이터를 분석하자.

BrainKimDu 2022. 11. 19. 22:53

 

 


데이터 출처

1. 서울시 상권 위치 데이터

서울시 우리마을가게 상권분석서비스(상권영역)> 데이터셋> 공공데이터 | 서울열린데이터광장 (seoul.go.kr)

 

열린데이터광장 메인

데이터분류,데이터검색,데이터활용

data.seoul.go.kr

 

2.  서울시 상권 추정매출

서울시 우리마을가게 상권분석서비스(상권-추정매출)> 데이터셋> 공공데이터 | 서울열린데이터광장 (seoul.go.kr)

 

열린데이터광장 메인

데이터분류,데이터검색,데이터활용

data.seoul.go.kr

 

3.  서울시 상권 개점폐업

서울시 우리마을가게 상권분석서비스(상권-점포)> 데이터셋> 공공데이터 | 서울열린데이터광장 (seoul.go.kr)

 

열린데이터광장 메인

데이터분류,데이터검색,데이터활용

data.seoul.go.kr

 


 

데이터 분석 시작

 

import pandas as pd

 

gage_location = pd.read_csv('./2019_서울시 우리마을가게 상권 위도 경도.csv', encoding='EUC-KR')
gage_location

 

 

이렇게 생긴 데이터

 

gage_money = pd.read_csv('./서울시_우리마을가게_상권분석서비스(신_상권_추정매출)_2021년.csv', encoding='EUC-KR')
gage_money

 

gege_open_close = pd.read_csv('./2022_서울시_개점_폐업.csv', encoding='EUC-KR')
gege_open_close

 

일단 위치정보부터 가공하자

gage_location_processing = gage_location.drop(['기준_년월_코드', '상권_구분_코드',  '시군구_코드',  '행정동_코드', '형태정보' ], axis=1)
gage_location_processing

 

이번엔 추정매출을 수정하자. 데이터는 분기별이므로 2분기를 사용하자

 

gage_money_procesing = gage_money[gage_money['기준_분기_코드'].isin([2])]
gage_money_procesing

 

 

gage_money_procesing = gage_money_procesing.drop(['상권_구분_코드', '서비스_업종_코드', '서비스_업종_코드_명'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['남성_매출_건수', '여성_매출_건수', '연령대_10_매출_건수', '연령대_20_매출_건수',
                                                 '연령대_30_매출_건수', '연령대_40_매출_건수', '연령대_50_매출_건수', '연령대_60_이상_매출_건수'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['주중_매출_비율', '주말_매출_비율', '월요일_매출_비율', '화요일_매출_비율'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['수요일_매출_비율', '목요일_매출_비율', '금요일_매출_비율', '토요일_매출_비율', '일요일_매출_비율'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['시간대_00~06_매출_비율', '시간대_06~11_매출_비율', '시간대_11~14_매출_비율', '시간대_14~17_매출_비율'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['시간대_17~21_매출_비율', '시간대_21~24_매출_비율', '남성_매출_비율', '여성_매출_비율'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['연령대_10_매출_비율', '연령대_20_매출_비율', '연령대_30_매출_비율', '연령대_40_매출_비율', '연령대_50_매출_비율'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['연령대_60_이상_매출_비율', '월요일_매출_금액', '화요일_매출_금액', '수요일_매출_금액', 
                                                 '목요일_매출_금액', '금요일_매출_금액', '토요일_매출_금액', '일요일_매출_금액'], axis=1)
gage_money_procesing = gage_money_procesing.drop(['남성_매출_금액', '여성_매출_금액', '연령대_10_매출_금액', '연령대_20_매출_금액', 
                                                 '연령대_30_매출_금액', '연령대_40_매출_금액', '연령대_50_매출_금액', '연령대_60_이상_매출_금액',
                                                 '월요일_매출_건수', '화요일_매출_건수', '수요일_매출_건수', '목요일_매출_건수', '금요일_매출_건수', '토요일_매출_건수',
                                                '일요일_매출_건수', ], axis=1)
gage_money_procesing

안쓰는 컬럼을 모두다 지워버린다. 

지우는 이유는 우리의 데이터는 결국 유동인구와 교통량에 초점을 맞추어야하기 때문이다.

 

 

import numpy as np

이제 상권번호로 피벗을 시키면 상권별 매출을 구할 수 있다.

 

gage_money_procesing_pivot = gage_money_procesing.pivot_table(gage_money_procesing, index=["상권_코드"], aggfunc = [np.sum] )
gage_money_procesing_pivot

 

대충 피벗을 해줬으면 이중인덱스를 풀어주고 컬럼명을 바꿔주어야합니다.

gage_money_procesing_pivot.columns = ['/'.join(col) for col in gage_money_procesing_pivot.columns]
gage_money_procesing_pivot
gage_money_procesing_pivot_list = ['기준_년_코드', '기준_분기_코드', '분기당_매출_건수', '분기당_매출_금액',
        '시간대_00~06_매출_금액', '시간대_06~11_매출_금액', '시간대_11~14_매출_금액',
        '시간대_14~17_매출_금액', '시간대_17~21_매출_금액', '시간대_21~24_매출_금액',
        '시간대_건수~06_매출_건수', '시간대_건수~11_매출_건수', '시간대_건수~14_매출_건수',
        '시간대_건수~17_매출_건수', '시간대_건수~21_매출_건수', '시간대_건수~24_매출_건수',
        '점포수', '주말_매출_건수', '주말_매출_금액', '주중_매출_건수',
        '주중_매출_금액']

바꾸고 싶은 이름을 리스트로 만들고

 

for i in range(len(gage_money_procesing_pivot_list)):
    gage_money_procesing_pivot.rename(columns={gage_money_procesing_pivot.columns[i]: gage_money_procesing_pivot_list[i] }, inplace=True)
gage_money_procesing_pivot['연도_분기'] = "2021_2분기"
gage_money_procesing_pivot

 

 

 

gage_money_procesing_pivot = gage_money_procesing_pivot.drop(['기준_년_코드', '기준_분기_코드'], axis=1)
gage_money_procesing_pivot = gage_money_procesing_pivot[['연도_분기', '점포수', '분기당_매출_금액', '분기당_매출_건수',
             '주말_매출_금액', '주말_매출_건수', '주중_매출_금액', '주중_매출_건수',
            '시간대_00~06_매출_금액', '시간대_06~11_매출_금액', '시간대_11~14_매출_금액',
            '시간대_14~17_매출_금액', '시간대_17~21_매출_금액', '시간대_21~24_매출_금액',
            '시간대_건수~06_매출_건수', '시간대_건수~11_매출_건수', '시간대_건수~14_매출_건수',
            '시간대_건수~17_매출_건수', '시간대_건수~21_매출_건수', '시간대_건수~24_매출_건수']]

컬럼위치를 보기좋게 변경하고

 

 

gage_money_procesing_pivot = gage_money_procesing_pivot.reset_index()
gage_money_procesing_pivot

 

이렇게 하면 끝난다.