기록하는삶

[파이썬/python] EDA 기본(datetime type 변경, 중복값 제거, Null값 확인, unique 확인, 날짜정보 type변경, 히트맵) 본문

AI/파이썬(Python)

[파이썬/python] EDA 기본(datetime type 변경, 중복값 제거, Null값 확인, unique 확인, 날짜정보 type변경, 히트맵)

mingchin 2021. 9. 22. 00:29
728x90
반응형

탐색적 데이터 분석(EDA _ Exploratory Data Analysis)

> 데이터의 종류, 양, 범위, 결측치 여부, 중복값 여부 등을 살피고 나아가 그 특징과 의미 등을 살피는 행위

> 각종 통계기법을 활용하거나, 그래프를 그려보기도 한다.

데이터마다 EDA와 그에 따른 전처리 방법은 천차만별이지만, 보통 필수적으로 진행해야하는 EDA도 있다.

1) 상위, 하위값 확인(head, tail)

어떤 column들이 있고, 어떤 값들이 들어가 있는지 대강 파악한다.

df_train = pd.read_csv("train.csv")

df_train.head(3)

df_train.tail(3)

2) DataFrame.info(), DataFrame.describe()

df.info()는 각 컬럼명과 그 길이(len), null 허용 여부, 데이터타입(Dtype) 등을 한 눈에 볼 수 있다.

df.describe()을 통해 (가능한 컬럼들의) 기본적인 통계정보를 한 눈에 볼 수 있다. 그 예시는 아래와 같다.

df_train.info()

df_train.describe()

3) Null or NaN값 존재 확인, 중복값 제거

DataFrame.isnull().sum()을 활용하면 각 column의 null값 개수를 확인할 수 있다.

DataFrame.dropna()을 통해 null값이 포함된 row를 삭제할 수 있다.

DataFrame.drop_duplicates()로 중복된 행이 있다면 제거할 수 있다.

df_train.isnull().sum()

df_train.dropna() # inplace = True: 변경 사항 df에 적용

df_train.drop_duplicates()

4) Unique값 확인하기

10개 미만의 unique값을 가지는 column에 대해 그 unique값들을 출력하는 코드다.

for item in df:
	if df[item].nunique() < 10:
		print('{} : {}'.format(item, df[item].unique().tolist()))

5) (날짜가 string type으로 입력되어 있는 경우) 날짜 정보의 datatype 변경

data를 받아오면 많은 경우 날짜 정보가 string(문자열)으로 들어가 있다. 'datetime64' type을 통해 이를 변환하고, 년/월/일 등을 별도 column으로 구성할 수 있다.

import pandas as pd
import datetime as dt

df_train['일자'] = df_train['일자'].astype('datetime64')
df_train['year'] = df_train['일자'].dt.year
df_train['month'] = df_train['일자'].dt.month
df_train['day'] = df_train['일자'].dt.day

6) column간의 상관계수 히트맵으로 확인하기

상관계수 정도는 일반적으로 살펴보기 좋다.

import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

plt.figure(figsize=(12, 9))
sns.heatmap(df_train.corr(), annot=True)
plt.show()

아래는 히트맵 예시.

728x90
반응형