본문 바로가기

Data Analysis

[Pandas] 자주 사용했던 기능들 정리 - 1. 데이터프레임 정보 확인하기

그동안 데이터 분석을 공부하면서 사용했던 pandas 기능들을 별도로 노션에 정리해두곤 했다.

하지만 정리한 내용이 주로 통계나 머신러닝 과제를 중심으로 정리되어 있어

pandas 기능만 별도로 정리해두는 것이 앞으로 pandas를 사용하는 데에 더 도움이 될 것 같다는 생각이 들었다. 

 

일단은 오늘 복습하면서 사용했던/기억나는 pandas 기능들을 타이타닉 데이터를 활용해 정리해보겠다.

 

데이터프레임 정보 확인하기

분석을 위해 데이터를 불러오거나 데이터프레임을 만들면, 본격적인 분석에 앞서 데이터프레임의 모양이나 칼럼의 특성 등 기본적인 정보들을 확인하는 작업이 필요하다. 

 

1) head()  / tail()

먼저, 데이터프레임을 만들면 head를 통해 데이터프레임의 기본적인 모양들을 확인할 수 있다. 불러온 데이터의 모양을 시각적인 형태로 직관적으로 확인이 가능하기에, 데이터프레임을 불러왔을 때 가장 먼저 하는 작업 중 하나이다.

 

사용 방법은 간단하다. dataframe을 저장한 변수의 이름 뒤에 '.head()'를 입력하면 된다. 기본값은 5이며, 별도의 파라미터를 지정하지 않으면 상위 다섯 개의 인덱스가 출력된다. () 안에 숫자를 입력하면, 입력한 숫자 만큼의 인덱스가 출력된다.

# 타이타닉 데이터 불러오기
df_train = pd.read_csv('train.csv')

df_train.head()

 

tail은 head와 반대로 밑에서부터 데이터프레임이 출력된다. 

 

2) index / columns

index와 columns는 데이터프레임의 index와 columns 데이터를 출력한다. 

df_train.index
# RangeIndex(start=0, stop=891, step=1)

df_train.columns
"""
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
       'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
      dtype='object')
"""

 

이를 활용해서 데이터프레임의 행/열의 정보를 변환할 수도 있다. 

df_train.columns = list('abcdefghijkl')
df_train.head()

 

3) shape

데이터프레임의 행과 열의 개수를 튜플로 나타내준다. 

df_train.shape
# >> (892, 12)

df_train은 892개의 row와 12개의 feature로 구성되어 있음을 확인할 수 있다. 

 

4) dtypes

각 열의 데이터타입을 출력한다. 

df_train.dtypes
"""
>>>
PassengerId      int64
Survived         int64
Pclass           int64
Name            object
Sex             object
Age            float64
SibSp            int64
Parch            int64
Ticket          object
Fare           float64
Cabin           object
Embarked        object
dtype: object
"""

※ pandas의 데이터 타입

: int64(정수형), object(문자열 혹은 복합형), float64(실수형), datetime64(시간), bool(부울형), category(카테고리형)

 

5) describe()

describe() 메소드는 데이터프레임의 기본적인 통계량을 제공해준다. 기본적으로 특정 feature의 개수(count), 평균(mean), 편차(std), 최솟값(min)과 최댓값(max), 그리고 percentile(25%, 50%, 75%)를 알려준다.

df_train.describe()

별도의 옵션을 지정하지 않으면, 위처럼 numeric 타입의 특성들의 정보만 출력된다.

 

다음과 같은 파라미터를 활용해서 출력되는 값을 변경할 수 있다.

percentiles : 출력되는 percentiles 값을 변경. (기본은 25%, 50%, 75%) 

     예시 : df_train.describe(percentiles=[0.1, 0.3, 0.6, 0.9]) 

     >>> 10%, 30%, 60%, 90%에 해당하는 값이 출력

include : 포함하고자 하는 데이터의 타입을 지정할 수 있다. 

     - None : 기본값. 숫자형 특성만 포함.

     - 'all' : 모두 포함.

     - [dtypes'] : 리스트 안에 있는 데이터 형식을 포함. 

     예시 : df_train.describe(include=['object']

     >>> object 타입 특성의 정보를 출력

exclude : include와 반대로 제외하고자 하는 데이터 타입을 지정할 수 있다. 

 

다음과 같이 특정 칼럼을 지정해서 확인할 수도 있다. 

df_train['Name'].describe()

 

6) info()

특성별 데이터타입, 결측값이 아닌 데이터 수, 메모리 사용 등을 출력한다.

df_train.info()
<class 'pandas.core.frame.dataframe'="">
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB