Posts [프로그래머스 인공지능스쿨] Week3-1 Python - pandas
Post
Cancel

[프로그래머스 인공지능스쿨] Week3-1 Python - pandas

강의


pandas

1
import pandas as pd
Series

1차원 데이터 다루기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
s = pd.Series([1,4,9,16,26])
t = pd.Series({'one':1, 'two':2, 'three':3})

s[1]
# 4
s[[3,1,4]]
# 16, 4, 26
s[s > s.median()]
# 16 26
t['one']
# 1
t['four'] = 4
# t = {'one':1, 'two':2, 'three':3, 'four':4}
'one' in t
# True
'six' in t
# False
t.get('five', 0)
# 0
DataFrame

2차원 데이터 다루기

1
2
3
4
5
6
7
8
9
10
11
12
list = {'h':[1,2,3,4], 'w':[10,20,30,40]}
df = pd.DataFrame(list)
#   h	w
# 0	1	10
# 1	2	20
# 2	3	30
# 3	4	40

df.dtypes
# h    int64
# w    int64
# dtype: object

csv 파일 읽기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
covid = pd.read_csv("./country_wise_latest.csv")

covid.head(5)
# 맨 앞 데이터 5줄 읽기
covid.tail(5)
# 맨 뒤 데이터 5줄 읽기

covid['Active']
covid['Active'][1:10]
covid[['Active', 'Deaths']]
# 특정 컬럼 가져오기

covid[covid['New cases'] > 100]
covid[covid['WHO Region'] == 'South-East Asia']
# 특정 조건을 이용한 접근

covid['WHO Region'].unique()
# 중복 없이 데이터 읽기

books = {"Available":[True, True, False], "Location":[102,215,323], "Genre":["programming","Physics","Math"]}
book = pd.DataFrame(books, index=['버그란 무엇인가', '두근두근 물리학', '미분해줘 홈즈'])
#	                Available	Location	Genre
# 버그란 무엇인가	True	    102	      programming
# 두근두근 물리학	True	    215	      Physics
# 미분해줘 홈즈	   False	   323	     Math

book.loc["버그란 무엇인가"]
# Available           True
# Location             102
# Genre        programming
# Name: 버그란 무엇인가, dtype: object

book.loc["버그란 무엇인가", "Available"]
book.loc["버그란 무엇인가"]["Available"]
# true

book.iloc[0,1]
# 102

book.iloc[1,0:2]
# Available    True
# Location      215
# Name: 두근두근 물리학, dtype: object
Group By

동작 과정

  1. Split : 특정 기준을 바탕으로 데이터 분할
  2. apply : 통계 등 기능을 적용하여 데이터 압축
  3. combine : 결과를 바탕으로 새로운 Series 생성
1
2
3
4
5
6
7
8
covid_r = covid['Confirmed'].groupby(by=covid["WHO Region"])
# 확진자 수에 대해 지역별로 묶음

covid_r.sum()
# 지역별 확진자 수 합

covid_r.mean()
# 지역별 국가당 감염자 수 평균


Assignment

  1. covid 데이터에서 100 case 대비 사망률(Deaths / 100 Cases)이 가장 높은 국가는?
1
2
3
import pandas as pd
covid = pd.read_csv('./country_wise_latest.csv')
covid[['Country/Region', "Deaths / 100 Cases"]][covid["Deaths / 100 Cases"] == covid["Deaths / 100 Cases"].max()]
  1. covid 데이터에서 신규 확진자가 없는 나라 중 WHO Region이 ‘Europe’를 모두 출력하면?
1
2
covid_zeroNewCase_europe = covid[covid['New cases'] == 0]
covid_zeroNewCase_europe[covid_zeroNewCase_europe['WHO Region'] == 'Europe']
  1. 다음 데이터를 이용해 각 Region별로 아보카도가 가장 비싼 평균가격(AveragePrice)을 출력하면?
1
2
3
avocado = pd.read_csv('./avocado.csv')
avocado_region = avocado['AveragePrice'].groupby(by=avocado['region'])
avocado_region.max()


This post is licensed under CC BY 4.0 by the author.