분석하기 좋은 깔끔한 데이터 Tidy Data에 대해 간단히 알아보았다.
그 후 Tidy Data를 생각하며 아파트 분양가 분석을 했다.
Tidy Data
강의에선 Tidy Data에 대해 간단히 알아보며 논문을 소개해주셨지만, 해당 논문을 보며 Tidy Data에 대해 조금만 더 알아보려고 한다.
Handley Wickham은 Journal of Statistical Software에서 Tidy Data를 소개했다.
=> Handley Wickham의 논문
논문에서 데이터 분석은 데이터를 정제하고 준비하는 과정이 80%라고 한다.
데이터 클리닝은 작지만 중요한 측면이라고 하며 이를 data tidying이라고 칭한다.
데이터셋이 tidy(깔끔)가 되는지 messy(지저분)가 되는지는 데이터셋의 구조에 달려 있다.
Handley Wickham은 Tidy Data를 이렇게 정의하고 있다.
1. 각 변수가 열을 구성
2. 각 관측치가 행을 구성
3. 각 관측 단위가 표를 구성
또한 Tidy Data와 반대되는 개념으로 Messy Data가 되는 일반적인 경우를 설명한다.
1. 변수 이름이 아닌, 값이 열 이름인 경우
2. 여러 변수가 하나의 열에 저장
3. 변수가 행과 열에 모두 저장
4. 여러 유형의 관측 단위가 동일한 테이블에 저장
5. 하나의 관측 단위가 여러 테이블에 저장
테이블 예시로 알아보자.
Table 3은 Table 1의 tidy version이다.
각 행은 하나의 관측치(한 사람에 대한 정보)를, 각 열은 변수가 되었다.
그렇다면 아래 데이터는 tidy data일까?
논문에 따르면 tidy data가 아니다.
열 이름을 보면 소득의 범위가 들어가 있다. 즉 값이 열 이름이기 때문에 tidy data가 아니다.
이런 형태로는 데이터 분석 과정에서 불편할 수 있어 data tidying 과정이 필요하다.
위 데이터가 df라는 변수에 데이터프레임으로 저장되어 있다고 가정한다면
df_melt = pd.melt(df, id_vars='religion')
df_melt.columns = ['religion', 'income', 'freq']
df_melt.head(5)
pandas의 melt 함수를 사용하고 컬럼명을 세팅하여 아래와 같은 결과를 얻을 수 있다.
melt는 녹는다는 뜻을 가지고 있는데, 열(columns)에 있는 데이터를 행(row)으로 녹인다고 생각하면 쉽다.
논문에서는 이렇게 melt 함수가 적용된 데이터셋을 melted dataset, molten dataset으로 표현하고 있다.
데이터 분석에 유리하도록 Tidy Data를 만드는 것을 항상 염두해야겠다.
이후 전국 신규 아파트 분양가 분석을 했는데 이 과정에서 melt를 활용했다.
'AI SCHOOL > TIL' 카테고리의 다른 글
[DAY 31] 버거지수, 상관계수, plotly와 folium을 이용한 지도 시각화 (1) | 2023.02.09 |
---|---|
[DAY 30] EDA - 국가,권역별 전산업,소부장 산업별 수출/수입금액 (0) | 2023.02.07 |
[DAY 28] SQL 데이터 집계하기 - ROLLUP, WINDOW FUNCTION (0) | 2023.02.03 |
[DAY 27] Week 7 Insight Day 미니프로젝트2 시작, 수료생 특강 (0) | 2023.02.02 |
[DAY 26] 시가총액 상위 10종목 EDA - 주가추세, 수익률, pandas, matplotlib (0) | 2023.02.02 |
댓글