반응형

10.3.3 예제: 그룹에 대한 다른 값으로 결측치 채우기

누락된 데이터를 정리할 떄면 어떤 경우에는 dropna를 사용해서 데이터를 살펴보고 걸러내기 도 한다. 

하지만 어떤 경우에는 누락된 값을 고정된 값이나 혹은 데이터로부터 도출된 어떤 값으로 채우고 싶을 떄도 있다.

fillna메서드를 사용하는데 , 누락된 값읖 평균값으로 대체하는 예제:

import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(6))
s[::2] = np.nan

print(s)

s.fillna(s.mean())

그룹별로 채워 넣고 싶은 값이 다르다고 가정 할 경우 

apply 함수 사용

states = ['Ohio', 'New York','Vermont','Florida','Oregen','Nevada','California','Idaho']
group_key = ['East'] * 4 +['West'] * 4

data = pd.Series(np.random.randn(8), index = states)
print(data)

data[['Vermont','Nevada','Idaho']] = np.nan
print(data)

data.groupby(group_key).mean()
fill_mean = lambda g: g.fillna(g.mean())
data.groupby(group_key).apply(fill_mean)
fill_values = {'East':0.5, 'West':-1}
fill_func = lambda g:g.fillna(fill_values[g.name])
data.groupby(group_key).apply(fill_func)

10.3.4 예제: 랜덤 표본과 순열

Series 의 sample메서드

apply(함수 이름  , n = 4)

def 함수이름(deck, n = 5):

    return deck.sample(n)

 

10.3.5 예제: 그룹 가중 평균과 상관관계

각 연도별로 할 수 도 있다.

get_year = lambda x:x.year

by_year = rets.groupby(get_year)

by_year.apply(spx_corr)

 

10.3.6 예제 : 그룹상의 선형회귀

statsmodel를 사용해서 regress라는 함수를 작성하고 각 데이터 묶음마다 최소제곱으로 회귀를 수행할 수 있따.

 

 

10.4 피벗 테이블과 교차일람표

피벗테이블은 스프레드시트 프로그램과 그 외 다른 데이터 분석 소프트웨어에서 흔히 볼 수 있는 데이터 요약화 도구다.

피벗테이블은 데이터를 하나 이상의 키로 수집해서 어떤 키는 로우에, 어떤 키는 컬럼에 나열해서 데이터를 정렬한다.

margins = True를 넘겨서 부분합을 포함하도록 확장할 수 있는데, 그렇게 하면 All컬럼과 All로우가 추가되어 단일 줄 안에서 그룹 통계를 얻을 수 있다.

집계함수 aggfunc

 

 

10.4.1 교차일람표

교차일람표(또는 교차표)는 그룹 빈도를 계산하기 위한 피벗테이블의 특수한 경우다.

pandas.crosstab

 

11. 시계열

시간상의 여러 지점을 관측하거나 측정할 수 있는 모든 것이 시계열이다.

고정빈도 fixed frequency:

대부분의 시계열은 고정빈도로 표현되는데 데이터가 존재하는 지점이 15초마다, 5분마다, 한달에 한 번 같은 특정 규칙에 따라 고정 간격을 가지게 된다.

 

시계열은 또한 고정된 단위나 시간 혹은 단위들 간의 간격으로 존재하지 않고 불규칙적인 모습으로 표현될 수도 있다.

타임스탬프

기간

간격

시간의 측정값

 

11.1 날짜  시간 자료형  도구

datetimd.datetime

now = datetime.now()

datetime.timedelta

반응형

' > python for Data Analysis' 카테고리의 다른 글

11-3. 시계열  (0) 2021.02.21
11-2. 시계열  (0) 2021.02.21
10-2. 데이터 집계와 그룹 연산  (0) 2021.02.18
09-2. 그래프와 시각화 10-1. 데이터 집계와 그룹 연산  (0) 2021.02.17
09-1. 그래프와 시각화  (0) 2021.02.17

+ Recent posts