강의
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
동작 과정
- Split : 특정 기준을 바탕으로 데이터 분할
- apply : 통계 등 기능을 적용하여 데이터 압축
- 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
- 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()]
- covid 데이터에서 신규 확진자가 없는 나라 중 WHO Region이 ‘Europe’를 모두 출력하면?
1
2
covid_zeroNewCase_europe = covid[covid['New cases'] == 0]
covid_zeroNewCase_europe[covid_zeroNewCase_europe['WHO Region'] == 'Europe']
- 다음 데이터를 이용해 각 Region별로 아보카도가 가장 비싼 평균가격(AveragePrice)을 출력하면?
1
2
3
avocado = pd.read_csv('./avocado.csv')
avocado_region = avocado['AveragePrice'].groupby(by=avocado['region'])
avocado_region.max()