데이터 랭글링이란
분석을 하거나 모델을 만들기 전에 데이터를 사용하기 쉽게 변형하거나 맵핑하는 과정입니다.
데이터 랭글린의 단계
- 데이터 수집 ( Gather ) : 데이터를 얻는 방법, 즉 다운로드와, 웹 스크레이핑, API등이 있습니다. 이를 통해 보유한 데이터가 어떠한 정보들을 포함하고 있는지, 어떠한 내용을 분석할 것인지를 판단합니다.
- 데이터 확인 ( Access) : 데이터가 분석하기 위한 조건에 합당한지, 합당하지 않다면 원자료(raw data)들을 계산이 쉽도록 일정 규격에 맞추어 변환
- Completeness(널값), Validity(제약조건), Accuracy(정확성), Consistency(데이터 포맷)을 체크
- Tidy Data가 아닌 경우, 구조화
- 데이터 전처리 ( Data Processing, Clean ) : 데이터의 문제점을 식별하고 수정
- Define, Code, Test
- 재확인 및 반복 ( Reassess and Iterate ) : 부가적인 데이터를 추가하여 데이터의 효용성을 증가 , 데이터의 일관성, 품질 등을 확인 (2-3-4단계를 반복함)
- 데이터 저장 ( Store ) : 준비된 데이터를 데이터 분석 도구에 전달하고 데이터 준비 과정을 문서로 만들어 재사용할 수 있도록 저장
다양한 랭글링 방법 with Python
# 인덱싱
df[df['Age']=20] # 20대만 인덱싱
# 그룹
MAN = df[df['Gender']='MAN'] # 남자만 인덱싱
MAN = MAN.groupby(['Age','Gender']) # 나이, 성별로 그룹
MAN = MAN.groupby(['Age','Gender']).count() # 나이, 성별 그룹 기준 카운트
MAN = MAN.groupby(['Age','Gender']).sum() # 나이, 성별 그룹 기준 합
MAN = MAN.groupby('그룹 기준 속성 1개')[보고 싶은 속성].mean()
MAN = MAN.groupby('그룹 기준 속성 1개')[보고 싶은 속성].sum()
MAN = MAN.groupby('그룹 기준 속성 1개')[보고 싶은 속성].count()
MAN = MAN.groupby('그룹 기준 속성 1개')[보고 싶은 속성].mode() # 최빈값
MAN = MAN.groupby(['그룹 기준 속성 1개', '그룹 기준 속성 1개'])[보고 싶은 속성].count()