데이터 전처리/머신러닝을 위한 필수 전처리

데이터 파편화 문제(5)(데이터 요약이 필요한 경우)

97dingdong 2022. 12. 13. 21:02

데이터 요약이 포함되는 경우
보통 1:N 병합인 경우에 사용되며, 거래 데이터 및 로그 데이터와 병합하는 경우에 주로 사용된다.
해결 방안은 중복 레코드를 포함하는 데이터를 요약한 후 병합하는 방식으로 문제를 해결한다.

예를 들어, 거래 데이터에서 A라는 고객이 물건을 구매한 횟수가 여러번일때 A고객의 구매금액들의 통계량으로 요약 후 병합하는 방식이다.

  • 관련 문법: DataFrame.groupby()

조건부 통계량(조건에 따른 대상의 통계량)을 계산하기 위한 함수로 머신러닝 프로세스 뿐만 아니라, 통계 분석 등에서도 굉장히 자주 활용된다.
-주요 입력
▷by: 그룹화할 변수(컬럼명 혹은 컬럼명 리스트로 입력-리스트 형태로 입력)
▷as_index: 조건 변수를 index로 설정할 것인지 여부
-활용 예시
▷df.groupby(['성별'])['신장'].mean() # 성별(조건)에 따른 신장(대상)의 평균(통계량)



## 코드 실습 ##

# 경로 설정, 필요한 모듈 불러오기
import os
os.chdir(r"C:\Users\82102\Desktop\데이터전처리\머신러닝을 위한 필수 전처리\Part 4. 머신러닝을 위한 필수 전처리\데이터")

import pandas as pd

# 데이터 불러오기
demo_df = pd.read_csv("고객별_인구통계정보.csv", encoding='cp949')
purchasing_df = pd.read_csv("고객별_구매금액.csv", encoding='cp949')

# 데이터 요약(구매금액 합계)
purchasing_aggregated_df = purchasing_df.groupby(['고객ID'])['구매금액'].sum()

# 데이터 병합
merged_df = pd.merge(demo_df, purchasing_aggregated_df, left_on='고객ID', right_index=True)
merged_df.head()