데이터 살펴보기

데이터프레임 형태로 만들어진 전체 데이터를 먼저 살펴보자.

# 넘파이(Numpy), 판다스(Pandas) 불러오기
import pandas as pd
import numpy as np
 
# read_csv 함수로 "Clean_Dataset.csv" 불러오기
flight = pd.read_csv('./Clean_Dataset.csv', encoding = "cp949")
flight
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationdays_leftprice
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.1715953
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3315953
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1715956
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2515955
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3315955
.......................................
300148300148VistaraUK-822ChennaiMorningoneEveningHyderabadBusiness10.084969265
300149300149VistaraUK-826ChennaiAfternoononeNightHyderabadBusiness10.424977105
300150300150VistaraUK-832ChennaiEarly_MorningoneNightHyderabadBusiness13.834979099
300151300151VistaraUK-828ChennaiEarly_MorningoneEveningHyderabadBusiness10.004981585
300152300152VistaraUK-822ChennaiMorningoneEveningHyderabadBusiness10.084981585

300153 rows × 12 columns

각 항목이 의미하는 내용은 다음과 같다.

  1. 칼럼(Column): 열 레이블에 대한 정보를 보유한다.
  2. 인덱스(Index): 행(Row) 인덱스에 대한 정보를 보유한다.
  3. 생성된 데이터프레임의 행과 열의 수를 표시한다.

데이터프레임 이름만 실행할 경우 전체 데이터가 출력되지만, head, tail 메소드를 활용하면 데이터 일부만 확인할 수도 있다.

# head 확인하기
flight.head()
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationdays_leftprice
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.1715953
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3315953
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1715956
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2515955
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3315955
# tail 확인하기
flight.tail()
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationdays_leftprice
300148300148VistaraUK-822ChennaiMorningoneEveningHyderabadBusiness10.084969265
300149300149VistaraUK-826ChennaiAfternoononeNightHyderabadBusiness10.424977105
300150300150VistaraUK-832ChennaiEarly_MorningoneNightHyderabadBusiness13.834979099
300151300151VistaraUK-828ChennaiEarly_MorningoneEveningHyderabadBusiness10.004981585
300152300152VistaraUK-822ChennaiMorningoneEveningHyderabadBusiness10.084981585

head와 tail 값을 별도로 지정하지 않으면 5줄을 보여주고, 값을 지정하면 지정한 행의 수만큼 보여준다.

# head로 상위 10개의 데이터 확인하기
flight.head(n=10)
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationdays_leftprice
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.1715953
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3315953
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1715956
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2515955
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3315955
55VistaraUK-945DelhiMorningzeroAfternoonMumbaiEconomy2.3315955
66VistaraUK-927DelhiMorningzeroMorningMumbaiEconomy2.0816060
77VistaraUK-951DelhiAfternoonzeroEveningMumbaiEconomy2.1716060
88GO_FIRSTG8-334DelhiEarly_MorningzeroMorningMumbaiEconomy2.1715954
99GO_FIRSTG8-336DelhiAfternoonzeroEveningMumbaiEconomy2.2515954

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

판다스는 데이터 분석을 위한 라이브러리로 기본적인 통계 정보를 제공한다.

shape의 속성 변환값은 튜플로 존재하며, 행(row)과 열(column)의 개수를 튜플 형태로 변환해준다.

# shape 확인하기
flight.shape
(300153, 12)

columns는 데이터프레임을 구성하는 칼럼명을 확인할 때 사용한다.

# columns 확인하기
flight.columns
Index(['Unnamed: 0', 'airline', 'flight', 'source_city', 'departure_time',
       'stops', 'arrival_time', 'destination_city', 'class', 'duration',
       'days_left', 'price'],
      dtype='str')

info는 데이터 유형, 각 칼럼의 데이터 수 등을 한 번에 볼 수 있어 데이터의 구성이나 결측치 유무를 확인할 수 있다.

# info 확인하기
flight.info()
<class 'pandas.DataFrame'>
RangeIndex: 300153 entries, 0 to 300152
Data columns (total 12 columns):
 #   Column            Non-Null Count   Dtype  
---  ------            --------------   -----  
 0   Unnamed: 0        300153 non-null  int64  
 1   airline           300153 non-null  str    
 2   flight            300153 non-null  str    
 3   source_city       300153 non-null  str    
 4   departure_time    300153 non-null  str    
 5   stops             300153 non-null  str    
 6   arrival_time      300153 non-null  str    
 7   destination_city  300153 non-null  str    
 8   class             300153 non-null  str    
 9   duration          300153 non-null  float64
 10  days_left         300153 non-null  int64  
 11  price             300153 non-null  int64  
dtypes: float64(1), int64(3), str(8)
memory usage: 27.5 MB

describe는 데이터 칼럼별 요약 통계량을 나타낸다. float나 int처럼 숫자형 데이터의 통계치를 확인하는 데 유용하다.(count: 데이터 개수, mean: 평균값, std: 표준편차, min: 최솟값, max: 최댓값, 4분위값)

# describe 확인하기
flight.describe()
Unnamed: 0durationdays_leftprice
count300153.000000300153.000000300153.000000300153.000000
mean150076.00000012.22102126.00475120889.660523
std86646.8520117.19199713.56100422697.767366
min0.0000000.8300001.0000001105.000000
25%75038.0000006.83000015.0000004783.000000
50%150076.00000011.25000026.0000007425.000000
75%225114.00000016.17000038.00000042521.000000
max300152.00000049.83000049.000000123071.000000

info 함수에서 확인한 데이터 유형 중 float와 int형인 4개의 칼럼만 describe에서 값이 나온 것을 확인할 수 있다.

범주형 데이터 정보를 확인하려면 all로 지정한다.

flight.describe(indlude='all)

dtype는 데이터프레임이 가지는 데이터 형태의 종류를 나타낸다.

flight.dtypes
Unnamed: 0            int64
airline                 str
flight                  str
source_city             str
departure_time          str
stops                   str
arrival_time            str
destination_city        str
class                   str
duration            float64
days_left             int64
price                 int64
dtype: object

value_counts는 지정된 칼럼의 값(value)에 대한 발생 횟수를 나타낸다.

# value_counts 확인하기
flight['source_city'].value_counts()
source_city
Delhi        61343
Mumbai       60896
Bangalore    52061
Kolkata      46347
Hyderabad    40806
Chennai      38700
Name: count, dtype: int64