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속성 변환 값은 튜플로 존재하며, 행(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
속성명을 검색할 수 있다.
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')
데이터 유형, 각 칼럼의 데이터 수 등을 한번에 볼 수 있다.
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
데이터 칼럼별 요약 통계량을 나타냄 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
데이터 프레임이 가지는 데이터 형태의 종류
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
지정된 칼럼의 값에 대한 발생 횟수
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
정보 감사합니다.