-
[데이터전처리] 컬럼이 다른 데이터셋 병합하기데이터 분석 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
'데이터 분석' 카테고리의 다른 글
[상권 정보 분석] 전처리 과정 (0) 2021.09.13 [데이터 시각화] 히트맵 및 swarmplot (0) 2021.09.12 [판다스&Seaborn] 데이터 시각화 (line, bar, relplot, catplot, violinplot, boxplot) (0) 2021.09.12 [판다스] pivot table로 데이터 집계하기 (0) 2021.09.12 [판다스] 아파트 분양 가격 데이터 분석 (0) 2021.09.10