ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터전처리] 컬럼이 다른 데이터셋 병합하기
    데이터 분석 2021. 9. 12. 22:31

    두 개의 데이터셋 살펴보기

    두 개의 데이터셋 df_first, df_last는 다음과 같다. 

    df_first.head()

     

    df_last.head()

     

    melt를 이용하여 reshaping

    지역에 따라 각 기간별 평당분양가격으로 melt 한다.

    # pd.melt 를 사용하며, 녹인 데이터는 df_first_melt 변수에 담는다. 
    
    df_first_melt = df_first.melt(id_vars="지역", var_name="기간", value_name="평당분양가격")
    df_first_melt.head()

     

    df_last 데이터셋의 column 이름에 맞춰 변경한다.

    # df_first_melt 변수에 담겨진 컬럼의 이름을 
    # ["지역명", "기간", "평당분양가격"] 으로 변경합니다.
    
    df_first_melt.columns = ["지역명", "기간", "평당분양가격"]
    df_first_melt.head(1)

     

    기간을 '연도'와 '월' column으로 분리하기

    # parse_year라는 함수를 만든다.
    # 연도만 반환하도록 하며, 반환하는 데이터는 int 타입이 되도록 한다.
    
    def parse_year(date):
        year = date.split("년")[0]
        return int(year)
    
    y = parse_year(date)
    print(type(y))
    y
    # parse_month 라는 함수를 만듭니다.
    # 월만 반환하도록 하며, 반환하는 데이터는 int 타입이 되도록 합니다.
    
    def parse_month(date):
        month = date.split("년")[-1].replace('월', "")
        return int(month)
    
    parse_month(date)

     

    함수 적용하기

    # df_first_melt 변수에 담긴 데이터프레임에서 
    # apply를 활용해 연도만 추출해서 새로운 컬럼에 담는다.
    
    df_first_melt["연도"] = df_first_melt["기간"].apply(parse_year)
    df_first_melt.head(1)
    df_first_melt["월"] = df_first_melt["기간"].apply(parse_month)
    df_first_melt.head(1)

     

    df_first와 df_last 의 column 정리하기

    cols = ['지역명', '연도', '월', '평당분양가격']
    cols
    df_last_prepare = df_last.loc[df_last["전용면적"] == "전체", cols].copy()
    df_last_prepare.head(1)

    # df_first_melt에서 공통된 컬럼만 가져온 뒤
    # copy로 복사해서 df_first_prepare 변수에 담는다.
    
    df_first_prepare = df_first_melt[cols].copy()
    df_first_prepare.head(1)

     

    concat 으로 두 개의 데이터프레임 병합

    # df_first_prepare 와 df_last_prepare 를 합친다.
    
    df = pd.concat([df_first_prepare, df_last_prepare])
    df.head()

     

     

     

    GitHub - DAWUNHAN/DataAnalysisInPython

    Contribute to DAWUNHAN/DataAnalysisInPython development by creating an account on GitHub.

    github.com

     

    댓글