AICE - 데이터획득, 구조

이강민·2023년 7월 31일
0

AICE

목록 보기
1/18
post-thumbnail

AICE의 실습 환경은 구글의 코랩을 사용하였으며
코드는 파이썬을 활용하였다.

데이터 획득

파이썬 데이터 분석 라이브러리

넘파이

  • 수치 데이터를 다루는 데 활용하는 파이썬 라이브러리

넘파이 사용

# numpy의 라이브러리를 import 한다. 
import numpy as np  

# 넘파이 데이터 만들기 
a = np.array([1,2,3,4,5])
b = np.array([1,2,'대한민국','포르투갈'])

print(a)
print(b)

판다스

판다스 사용

시리즈 만들기

import pandas as pd

s = pd.Series(['대한민국','포르투갈','가나','우루과이'], index=['가','나','다','라'], name='2022 월드컵 H조')

실행결과

가    대한민국
나    포르투갈
다      가나
라    우루과이
Name: 2022 월드컵 H조, dtype: object

데이터프레임 만들기

import pandas as pd
a1 = pd.DataFrame({"a":[1,2,3],"b":[4,5,6], "c":[7,8,9]})

실행결과

   a  b  c
0  1  4  7
1  2  5  8
2  3  6  9

데이터를 리스트형으로 데이터프레임 생성

a2 = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]], ["a","b","c"])

실행결과

   0  1  2
a  1  2  3
b  4  5  6
c  7  8  9

데이터 불러오기

판다스를 사용하여 csv파일을 불러올 수 있다.


import pandas as pd

# 변수 = pd.read_csv(filepath, encoding...)
flight = pd.read_csv("https://www.yeinart.co.kr/ai/Clean_Dataset.csv", encoding = "cp949")

flight # 실행

실행결과
생략

데이터 저장하기

import pandas as pd
# 데이터 프레임 생성
a2 = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]], ["a","b","c"])
# csv 파일을 다음과 같은 경로에 저장
a2.to_csv('./result_a2.csv')

데이터 구조

데이터프레임 확인하기

데이터 가져오기

다음 데이터는 웹에서 진행하기 때문에 웹에 저장시킨 데이터를 사용하였다.

import pandas as pd
# 웹에 저장된 파일은 ssl이 적용된 사이트에서 불러올 수 있다. 
flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = "cp949")
flight

실행 결과

Unnamed: 0	airline	flight	source_city	departure_time	stops	arrival_time	destination_city	class	duration	days_left	price
0	0	SpiceJet	SG-8709	Delhi	Evening	zero	Night	Mumbai	Economy	2.17	1	5953
1	1	SpiceJet	SG-8157	Delhi	Early_Morning	zero	Morning	Mumbai	Economy	2.33	1	5953
2	2	AirAsia	I5-764	Delhi	Early_Morning	zero	Early_Morning	Mumbai	Economy	2.17	1	5956
3	3	Vistara	UK-995	Delhi	Morning	zero	Afternoon	Mumbai	Economy	2.25	1	5955
4	4	Vistara	UK-963	Delhi	Morning	zero	Morning	Mumbai	Economy	2.33	1	5955
...	...	...	...	...	...	...	...	...	...	...	...	...
300148	300148	Vistara	UK-822	Chennai	Morning	one	Evening	Hyderabad	Business	10.08	49	69265
300149	300149	Vistara	UK-826	Chennai	Afternoon	one	Night	Hyderabad	Business	10.42	49	77105
300150	300150	Vistara	UK-832	Chennai	Early_Morning	one	Night	Hyderabad	Business	13.83	49	79099
300151	300151	Vistara	UK-828	Chennai	Early_Morning	one	Evening	Hyderabad	Business	10.00	49	81585
300152	300152	Vistara	UK-822	Chennai	Morning	one	Evening	Hyderabad	Business	10.08	49	81585
300153 rows × 12 columns

첫 줄은 column
첫 세로줄은 index
마지막 300153 rows × 12 columns은 생성된 Row 수와 Column수

특정 데이터 출력하기

import pandas as pd

flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = 'cp949')
n = 5 # n개를 정의
flight.tail(n) # 하위 n개의 데이터를 가져옴
flight.head(n) # 상위 n개의 데이터를 가져옴

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

shape

shape속성 변환 값은 튜플로 존재하며, 행(Row)와 열(Column)의 개수를 튜플의 형태로 변환한다.

import pandas as pd

flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = 'cp949')

flight.shape

# 실행결과 : (300153, 12)

행의 개수(튜플) : 300153
열의 개수 (속성) : 12

columns

속성명을 검색할 수 있다.

import pandas as pd

flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = 'cp949')

flight.columns

실행결과

Index(['Unnamed: 0', 'airline', 'flight', 'source_city', 'departure_time',
       'stops', 'arrival_time', 'destination_city', 'class', 'duration',
       'days_left', 'price'],
      dtype='object')

info( )

데이터 유형, 각 칼럼의 데이터 수 등을 한번에 볼 수 있다.

import pandas as pd

flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = 'cp949')

flight.info()

실행결과

<class 'pandas.core.frame.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  object 
 2   flight            300153 non-null  object 
 3   source_city       300153 non-null  object 
 4   departure_time    300153 non-null  object 
 5   stops             300153 non-null  object 
 6   arrival_time      300153 non-null  object 
 7   destination_city  300153 non-null  object 
 8   class             300153 non-null  object 
 9   duration          300153 non-null  float64
 10  days_left         300153 non-null  int64  
 11  price             300153 non-null  int64  
dtypes: float64(1), int64(3), object(8)
memory usage: 27.5+ MB

describe( )

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

import pandas as pd

flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = 'cp949')

flight.describe()

실행결과

	 Unnamed: 0	         duration	         days_left  	  price
count	300153.000000	300153.000000	300153.000000	300153.000000
mean	150076.000000	12.221021	26.004751	20889.660523
std	86646.852011	7.191997	13.561004	22697.767366
min	0.000000	0.830000	1.000000	1105.000000
25%	75038.000000	6.830000	15.000000	4783.000000
50%	150076.000000	11.250000	26.000000	7425.000000
75%	225114.000000	16.170000	38.000000	42521.000000
max	300152.000000	49.830000	49.000000	123071.000000

dtypes

데이터 프레임이 가지는 데이터 형태의 종류

import pandas as pd

flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = 'cp949')

flight.dtypes()

실행결과

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

value_counts( )

지정된 칼럼의 값에 대한 발생 횟수

import pandas as pd

flight = pd.read_csv('https://www.yeinart.co.kr/ai/Clean_Dataset.csv', encoding = 'cp949')

# 변수[‘속성 명’] : 특정 속성 지정 
flight['source_city'].value_counts()

실행결과

Delhi        61343
Mumbai       60896
Bangalore    52061
Kolkata      46347
Hyderabad    40806
Chennai      38700
Name: source_city, dtype: int64
profile
NullpointException

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

정보 감사합니다.

답글 달기