본문 바로가기

데이터 분석/파이썬

5-1) Pandas 기초와 데이터요약

List) 오늘 배운 것
1. 행/열/인덱스 함수 : shape, index, columns, values, dtypes
2.데이터살펴보기 : head/tail, sample, info, describe
3. 결측치 관련 함수 : 결측치 조회, 결측치 개수/비율
4.행/ 열 색인하기 : 슬라이싱, loc

 

 

먼저 라이브러리를 import 해줍시다

 

강의를 따라 dataset 예제는 seaborn에 있는 mpg(자동차 연비) 데이터셋을

변수 df에 저장해주었습니다.


그럼 pandas의 기초적인 기술통계 함수를 보겠습니다.

 

1. 행/열/인덱스 함수

(shape, index, columns, values,dtypes)

 

 

1-1. shape : 열과 행 모양 파악하기
>>  [데이터셋 변수].shape

 

ex) 

-df.shape 을 통해 행 389개 / 열 9개의 데이터셋 파악

 


1-2. index : 행 인덱스값 보기
>>  [데이터셋 변수].index

 

ex) 

-행이 0에서부터 389까지 1개씩 늘어나는 형태

 


1-3. columns : 각 열의 title보기
>>  [데이터셋 변수].columns

 

ex) 

- 총 9가지의 열이 있으며 각 열의 이름을 리스트로 제공


1-4. values : 각 행의 값 대략적으로 보기
>>  [데이터셋 변수].values

 

ex) 

- 각 행의 셀값을 대략적으로 표현

 


1-5. dtypes : 각 열의 변수 자료형(타입)
>>  [데이터셋 변수].dtypes

 

ex) 

-수치형 변수: mpg ~ model_year

-범주형 변수 : origin, name


2. 데이터 살펴보기

(head, tail, sample, info, describe)

 

2-1. head : 위에서부터 행 조회
>>  [데이터셋 변수].head ( 조회할 행 개수)

>> head() 안에 아무것도 입력하지 않으면 : 위에서부터 5개 행 조회

 

ex) df.head(3) :위에 3개 행 조회하기


2-2. tail : 밑에서부터 행 조회
>>  [데이터셋 변수].tail( 조회할 행 개수)

>> tail() 안에 아무것도 입력하지 않으면 : 밑에서부터 5개 행 조회

 

ex) df.tail() :밑에서부터 5개 행 조회하기


2-3. sample :랜덤하게 뽑기
>>  [데이터셋 변수].sample( 조회할 행 개수, 옵션모드)

 

>> 옵션없이 사용하면 매번 랜덤하게 데이터 행 반환

>> random_stae=42 => 한번 뽑은 데이터셋 유지

 

ex) df.sample() : 3개 행 랜덤조회하기


 

2-4. info : 각 열별 대략적 정보 반환
>>  [데이터셋 변수].info()

 

>> 1. columns :열 이름

>> 2. non-null count : NULL이 아닌 데이터 개수

>> 3. dtypes : 자료형(개수)

>> 4. memory : 메모리 사용량

 

ex) df.info() : 데이터셋 요약정보 보기


2-5. describe : 수치데이터 기술통계값
>>  [데이터셋 변수].describe()

 

[describe가 보여주는 기술통계값]

1. count : 행개수

2. mean : 평균

3. std :표준편차

4. min/max :최소-최대값

5. 사분위수

 

ex) df.describe() : 데이터셋 기술통계값(수치데이터에 한해서)

 

=> 범주형 데이터 기술통계값은?

>> describe(include='object')

 

[describe(include ='object')가 보여주는 기술통계값]

1. count : 행개수

2. unique : 고유값 개수

3. top : 가장 많이 나온 값

4. freq : 가장 많이 나온 값의 빈도수

 

 

ex) df.describe(include ='object') : 데이터셋 기술통계값(범주형 데이터)


3.결측치 관련 함수

(결측치 조회, 결측치 개수, 결측치 비율)

 

3-1. isnull/isna : 각 셀이 결측치면 TRUE/ 아니면 FALSE 반환
>>  [데이터셋 변수].isnull()

>>  [데이터셋 변수].isna()

 

ex) df.isnull() : 결측치 조회


3-2. isnull/isna().sum() : 각 열별 결측치 '수' 확인
>>  [데이터셋 변수].isnull(). sum()

>>  [데이터셋 변수].isna(). sum()

 

ex) df.isnull().sum() :각 열별 결측치 수 확인

=> horsepower에 결측치 6개 존재

 


3-3. isnull/isna().mean() : 각 열별 결측치 '비율' 확인
>>  [데이터셋 변수].isnull(). mean()

>>  [데이터셋 변수].isna(). mean()

>>  백분율 조회 : [데이터셋 변수].isna(). mean() *100

 

ex) df.isnull().mean() * 100 : 결측치 비율 조회

=> horsepower에서 1.5%비율의 결측치 존재

 


4. 행/열 색인하기

(슬라이싱, loc)

 

4-1) seires로 열만 가져오기

>> 데이터셋 변수. ['열 이름']

 

ex) df['mpg'] : df데이터셋에서 mpg 열 가져오기

4-2) dataframe으로가져오기

>> 데이터셋 변수. [  ['열 이름1',  '열 이름2',  '열 이름3' ] 

=> 열이름 리스트를 넣어주어야 함

 

ex) df [ [ 'origin'  , 'name' ]] : df데이터셋에서 origin과 name열 가져오기


4-3) loc

 

>> 행 가져오기 : 데이터셋 변수.loc[행 넘버]

>> 두개 이상의 행 가져오기 : 데이터셋 변수.loc[  [행넘버1, 행넘버2..]  ]

>> 행과 열 특정하기 :데이터셋 변수.loc[  [행넘버1, 행넘버2....]  , [열 이름1, 열 이름2...]]

 

ex) df [ [0 , 1 ]  [ 'origin'  , 'name' ] ]

: df데이터셋 / 0 과 1행에서 / origin과 name열 가져오기


참고 강의 주소) 네이버 부스트코스 - 모두를 위한 데이터사이언스

www.boostcourse.org/ds101

 

모두를 위한 데이터 사이언스

부스트코스 무료 강의

www.boostcourse.org