본문 바로가기
빅데이터분석

[파이썬] 파이썬 입문 데이터분석 프로젝트 만들기 - (6) 데이터에 대한 이해(head, tail, info, describe)

by 모닥불🔥 2024. 4. 28.

 

오늘은 전처리 정리 두 번째 시간! 강사님이 데이터를 이해하는 방법에 대해 간단히 알려주셨다. 빅분기 2과목에도 유용하게 썼던 거라 좀 익숙했다.


🔥 강의 목차

오리엔테이션
파이썬 기초 문법
데이터 전처리
데이터 시각화
마케팅 데이터 분석 및 지표 정의하기

🔥파이썬 전처리: Dictionary

지난 시간에서 데이터를 불러오고, 아 데이터의 행, 열이 각각 몇 개 정도 있구나. 열은 어떤 걸로 이루어져 있구나. 정도를 이해했다면 이 글에서는 직접 데이터를 약간씩 살펴보고 파악하는 방법을 배운다.

 

먼저 딕셔너리를 가르쳐 주셨는데, 타 파이썬 기초 강의에서도 딕셔너리를 알려주긴 하지만..!

딕셔너리를 데이터프레임 형태로 사용할 수 있다는 것은 이 강의에서 처음 들어서 신기했다.

my_dict = {
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3'
}

 

딕셔너리는 기본적으로, 딕셔너리 이름 = {} 이런 식으로 중괄호를 쓰고, 중괄호 안에 key값과 value 값을 넣어주는 형태로 만든다. 사전에서 단어 찾으면 뜻이 짝으로 나오는 것과 비슷하게 생겼다.

 

예를 들어, 아래와 같이, key 값에 열 이름을 적고, value 부분에 대괄호를 사용한 리스트 형태 [ ]의 데이터를 넣어줄 수 있다.

dict1 = {
	'col1': [1, 2, 3, 4],
	'col2': [10, 20, 30, 40],
	'col3': [100, 200, 300, 400]
    }

 

그러면 위에서 보는 것처럼 딕셔너리가 생성된다. 데이터 타입을 찍어보면 딕셔너리(dict)라고 나온다.

요 딕셔너리를! 판다스에서 제공하는 pd.DataFrame()으로 데이터프레임에 할당하면 데이터프레임 형태가 된다.

import pandas as pd
df = pd.DataFrame(dict1) # 딕셔너리를 dataframe에 할당

 

그러면 딕셔너리에서 key 값은 열 이름이 되고, values는 열이 가지고 있는 값이 된다. 다시 뽑아보면 df는 아래와 같은 테이블 형태, 즉 데이터프레임으로 출력된다. type()으로 데이터타입을 조사해도 dataframe 타입이라고 뜬다.

🔥파이썬 전처리: head(), tail(), info(), describe()

# seaborn으로 데이터 가져오기

import seaborn as sns
df_iris = sns.load_dataset('iris')

 

구글 드라이브에 저장된 csv 파일 외에도 seaborn 등 라이브러리에서 데이터를 불러올 수 있다.

아래 링크에 접속하면 seaborn 라이브러리 안에 어떤 데이터들이 들어 있는지 볼 수 있다.

 

https://github.com/mwaskom/seaborn-data

 

GitHub - mwaskom/seaborn-data: Data repository for seaborn examples

Data repository for seaborn examples. Contribute to mwaskom/seaborn-data development by creating an account on GitHub.

github.com

 

이제 head와 tail, info, describe를 알아보자.

1. head()

df_iris.head()

 

 

데이터 프레임 이름 뒤에 .head(n)이라고 적으면, 위에서부터 n개의 행을 출력한다.

괄호 안에 아무 숫자도 적지 않으면 위에서부터 5개 행이 출력된다.

 

head 는 값의 형태가 대략적으로 어떻게 되는지 눈으로 쭉 훑어볼 수 있어서 처음 데이터 받았을 때 뿐만 아니라, 어떤 조치를 취한 다음엔 꼭 head를 출력해서 잘 적용이 되었는지 확인했다. 예를 들어 새로운 열을 추가하는 코드를 썼다면 head를 출력해서 잘 생성되었는지 확인하는 식!

 

2. tail()

df_iris.tail(3)

 

 

데이터프레임명 뒤에 .tail(n)이라고 적으면, 아래에서부터 n개의 행을 출력한다.

괄호 안에 아무 숫자도 적지 않으면 순서상 마지막 5개 행이 출력된다.

 

tail은 head보다는 덜 사용하지만 그래도 마지막 행이나 인덱스 등 정보를 확인할 때 종종 쓰인다.

 

3. info()

df_iris.info()

 

dataframe이름.info()는 말그대로 정보를 알려주는데,

알려주는 정보로는 index 범위, 열의 개수, 열 이름, null 값 유무, data type 등이 있다. (아래 이미지 참고)

 

내가 빅분기 실기를 준비할 때는, null값을  제거하거나 대체값을 채워 넣기 위해서, 어떤 열에 null 값(빈칸)이 있는지 확인할 목적으로 많이 사용했다. 또한 datatype을 확인해서 시간데이터는 꼭 datetime 형태로 변경해 주었다.

 

4. describe()

df_iris.describe()

 

dataframe이름.describe()는 수치형 데이터(Numerical Data)인 경우에 데이터의 기술통계량을 알려준다.

출력되는 기초통계량: 개수, 평균, 표준편차(분산), 최대-최소값, 사분위수

 

내가 빅분기 실기를 준비할 때는 극단값을 확인할 때 describe()를 출력했다. 이 데이터의 경우 sepal_length의 평균이 5.84인데 만약 최대값에 1500 같은 극단적인 수가 있다면 제거해주는 식으로.. (극단적인 데이터의 기준은 평균으로부터 3표준편차 멀어진 값으로 하기도 한다.)

 

 

요까지 4개는 데이터 딱 열자마자 출력해 보면서 데이터를 파악하는 데 정말 많이 사용된다. :)빅분기 실기 공부할 때에도 2유형에서 참 많이 출력했던 기억이 난다. 꼭 습관화 하길 추천!

 

 

* 본 게시글은 '메타코드'의 동의를 받아 작성된 글로, 강의 내용에 대한 모든 저작권은 Ringo 선생님에게 있습니다. 개인용도의 학습 외에 무단사용은 엄격히 금지됩니다. 위반 시 법적 조취가 취해질 수 있습니다.