ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [판다스] 아파트 분양 가격 데이터 분석
    데이터 분석 2021. 9. 10. 22:17
     

    분석 내용

    • 2013년부터 2019년까지의 전국 신규 민간 아파트의 분양 가격 동향을 분석한다.
    • 다른 데이터셋을 가공하여 병합한다.
    • 데이터 전처리 후에 시각화한다.
    • 데이터셋은 공공데이터 포럼 (https://www.data.go.kr)
      • 전국 평균 분양가격(2013년 9월부터 2015년 8월까지)
      • 주택도시보증공사_전국 평균 분양가격(2019년 12월)

    활용 functions

    • concat, pivot, transpose in Pandas
    • groupby, pivot_table, info, describe, value_counts
    • bar plot, line plot, scatter plot, lm plot, 히트맵, 상자수염그림, swarm plot, 도수분포표, 히스토그램
    import pandas as pd
    import numpy as np
    
    import warnings
    warnings.filterwarnings("ignore")

     

    데이터 불러오기

    # 인코딩을 하지 않을 경우, 파일 로드하며 한글이 깨진다.
    
    df_last = pd.read_csv('data/주택도시보증공사_전국 평균 분양가격(2019년 12월).csv', encoding="cp949")
    
    # 데이터 크기
    df_last.shape

     

    2015년 분양가 데이터 불러오기

    # 총 2개의 데이터 df_first, df_last가 불러왔다.
    
    df_first = pd.read_csv('data/전국 평균 분양가격(2013년 9월부터 2015년 8월까지).csv', encoding="cp949")
    df_first.shape

     

    column을 추가하여 새로운 값을 입력하기

    df_last["평당분양가격"] = df_last["분양가격"] * 3.3
    df_last.head(1)

     

    전용면적 컬럼으로 변경하기

    # 규모구분을 전용면적으로 변경하기
    
    df_last["전용면적"] = df_last["규모구분"].str.replace("전용면적", "")
    df_last["전용면적"] = df_last["전용면적"].str.replace("초과", "~")
    df_last["전용면적"] = df_last["전용면적"].str.replace("이하", "")
    df_last["전용면적"] = df_last["전용면적"].str.replace(" ", "").str.strip()
    df_last["전용면적"]

     

    불필요한 컬럼 제거하기

    df_last = df_last.drop(["규모구분", "분양가격(㎡)"], axis=1)

     

    groupby로 데이터 재가공하기

    # 지역명에 따른 평당 분양 가격 평균가를 구한다.
    # sum, mean, max, min, describe 등을 구할 수 있다.
    
    df_last.groupby(["지역명"])["평당분양가격"].mean()
    # 전용면적으로 분양가격의 평균을 구합니다.
    
    df_last.groupby(["전용면적"])["평당분양가격"].mean()
    # 지역명, 전용면적으로 평당분양가격의 평균을 구합니다.
    # unstack() 하면 groupby 하고자 하는 내용이 컬럼으로 나온다.
    # round() 하면 소숫점 1자리까지만 보여준다.
    
    df_last.groupby(["전용면적", "지역명"])["평당분양가격"].mean().unstack().round()

     

    # 연도, 지역명으로 평당분양가격의 평균을 구합니다.
    
    g = df_last.groupby(["연도", "지역명"])["평당분양가격"].mean()
    g
    # g.unstack().transpose()

    댓글