본문 바로가기
AI SCHOOL/TIL

[DAY 29] Tidy Data(깔끔한 데이터), melt, 아파트 분양가 분석

2023. 2. 7.

분석하기 좋은 깔끔한 데이터 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. 하나의 관측 단위가 여러 테이블에 저장

테이블 예시로 알아보자.

messy1

 

tidy1

Table 3은 Table 1의 tidy version이다.
각 행은 하나의 관측치(한 사람에 대한 정보)를, 각 열은 변수가 되었다.

그렇다면 아래 데이터는 tidy data일까?

raw

논문에 따르면 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 함수를 사용하고 컬럼명을 세팅하여 아래와 같은 결과를 얻을 수 있다.

molten

melt는 녹는다는 뜻을 가지고 있는데, 열(columns)에 있는 데이터를 행(row)으로 녹인다고 생각하면 쉽다.
논문에서는 이렇게 melt 함수가 적용된 데이터셋을 melted dataset, molten dataset으로 표현하고 있다.


데이터 분석에 유리하도록 Tidy Data를 만드는 것을 항상 염두해야겠다.


이후 전국 신규 아파트 분양가 분석을 했는데 이 과정에서 melt를 활용했다.

 

전국 신규 아파트 분양가격 동향 분석, seaborn을 이용한 시각화

전혀 다른 형태의 두 데이터를 전처리하고 하나의 데이터프레임으로 병합한다. 병합된 데이터프레임을 다루어 데이터를 요약, 분석하고 다양한 방법으로 시각화한다. 라이브러리 임포트 데이

icedhotchoco.tistory.com

 

반응형

댓글