[TIL] Day 12 - pandas as pd

기역의궁전·2021년 5월 6일
0

dev2_TIL

목록 보기
13/18

Series?

  • 1차원 labeled array
  • 인덱스를 지정해줄 수 있음
a = pd.Series([1,4,9,16,25])
b = pd.Series({'one' : 1, 'two' : 2, 'three' : 3, 'four' : 4})


#a:
#0     1
#1     4
#2     9
#3    16
#4    25
#dtype: int64

#b:
#one      1
#two      2
#three    3
#four     4
#dtype: int64

a[ a>a.median() ]  # 자기 자신의 median(중앙값)보다 큰 값들만 가지고 와라

#3    16
#4    25
#dtype: int64

dataframe ?

  • 2차원 labeled table
  • 인덱스를 지정할 수도 있음
d = {"height" : [1,2,3,4], "weight":[30,40,50,60]}
df = pd.DataFrame(d)

#	height	weight
#0	1	30
#1	2	40
#2	3	50
#3	4	60

From CSV to dataframe

  • Comma Separated Value를 DataFrame으로 생성해줄 수 있다.
  • .read_csv()
# 동일 경로에 country_wise_latest.csv 파일 존재하면 :
# 현재경로 -> .
covid = pd.read_csv("./country_wise_latest.csv")

데이터 접근

값이 방대할 경우

  • .head(n) : 처음 n개의 데이터 참조
  • .tail(n) : 마지막 n개의 데이터를 참조

column_name으로 접근하기

  • df['column_name'] or df.column_name

※ column name에 공백이 들어가는 경우에는 앞에 방법을 택해야한다.
ex)
covid['WHO Region'] # Ok
covid.WHO Region # Error

Honey Tip! Dataframe의 각 column은 "Series"다!

열의 "조건"을 이용해서 데이터 접근하기

covid['New cases'] > 100
#True, True, False, .... True, True
covid[covid['New cases'] > 100]
#True값에 해당하는 데이터 가져오기

행을 기준으로 데이터 접근하기

방법 1. 인덱스를 이용해서 가져오기 : .loc[row, col]

방법 2. 숫자 인덱스를 이용해서 가져오기 : .iloc[rowidx,colidx]

.groupby(by=)

  • Split : 특정한 "기준"을 바탕으로 DataFrame을 분할
  • Apply : 통계함수(sum(), mean(), ... - 을 적용해서 각 데이터를 압축
  • Combine : Apply된 결과를 바탕으로 새로운 Series를 생성 (group_key : applied_value)
#Split
covid_by_region = covid['Confirmed'].groupby(by=covid['WHO Region'])

#Apply & combine
covid_by_region.sum()

#WHO Region
#Africa                    723207
#Americas                 8839286
#Eastern Mediterranean    1490744
#Europe                   3299523
#South-East Asia          1835297
#Western Pacific           292428
#Name: Confirmed, dtype: int64

0개의 댓글