inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

단 두 장의 문서로 데이터 분석과 시각화 뽀개기

16강에서 expanding()은 어떤 경우에 주로 활용하나요?

347

가물치

작성한 질문수 10

1

16강에서 expanding()은 어떤 경우에 주로 활용하나요?

expanding python pandas

답변 1

0

박조은

안녕하세요.

window 값을 누적해서 사용할 때 사용합니다.

rolling의 윈도우가 20개라면 20개씩 이동하며 계산하는데 expanding은 누적해서 계산합니다.

누적이동평균(Cumulative moving average)

  • expanding을 사용합니다. window 창이 시간의 흐름에 따라 증가합니다.
In [30]:
# expanding 을 사용하면 window가 시간의 흐름에 따라 증가합니다.
df["CMA"] = df["Close"].expanding(14).mean()
In [31]:
# 누적이동평균 시각화
df[["Close", "CMA"]].plot(figsize=(10,4), title="Cumulative moving average")
Out[31]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fc0db083a90>

아래 내용은 제 다른강의(bit.ly/inflearn-finace-data)에서 가져온 내용인데 아래 링크에서 소스코드를 함께 보실 수 있습니다.

[finance-data-analysis/6.1 일별 수익률과 이동평균-output.ipynb at main · corazzon/finance-data-analysis](https://github.com/corazzon/finance-data-analysis/blob/main/6.1%20%EC%9D%BC%EB%B3%84%20%EC%88%98%EC%9D%B5%EB%A5%A0%EA%B3%BC%20%EC%9D%B4%EB%8F%99%ED%8F%89%EA%B7%A0-output.ipynb)

이동평균

통계학에서 이동평균(롤링평균 또는 이동평균)은 전체 데이터 집합의 여러 하위 집합에 대한 일련의 평균을 만들어 데이터 요소를 분석하는 계산이다. 이동산술평균 (Moving Mean) 또는 롤링산술평균(Rolling Mean)이라고도 한다.

일련의 연속된 숫자와 고정된 부분 집합 크기가 주어지면, 이동 평균의 첫 번째 요소는 연속된 숫자의 첫 고정 부분 집합의 평균을 취하여 구한다. 그런 다음 "앞으로 이동"하여 하위 집합을 변경한다. 즉, 부분 집합의 첫 번째 숫자를 제외하고 연속된 숫자의 다음 값을 포함시킨다.

rolling

  • window : 몇 개의 데이터를 가지고 연산을 할 것인지 결정
    • 의미 : window가 클수록 부드러운 선의 형태를 가지고 있음 window가 center에 있지 않으면 window는 클수록 위상 차가 큼
  • min_periods : 최소한 몇 개의 데이터가 있어야 연산을 할 것인지 결정
    • --> window 안의 데이터가 min_periods보다 적다면, 결과는 NaN
  • center : window의 위치를 window 끝으로 할 것인지 중간으로 할 것 인지 결정
    • 의미 : 시계열 데이터에서는 window를 중간으로 할 수 없다(미래의 데이터는 볼 수 없기 때문에)

expanding

  • window : expanding에서는 window를 결정하지 않음
    • 왜냐하면 window의 크기가 순차적으로 증가하기 때문
  • min_periods : 최소한 몇 개의 데이터가 있어야 연산을 할 것인지 결정
    • --> 이것은 rolling과 같음
  • expanding에서의 sum()은 cumsum() 연산과 동일하게 진행되나 NaN 이 있을 경우 expanding은 무난하게 처리할 수 있음
  • 연산을 sum()으로 했을 경우, cumsum()과 같은 의미가 있음

날짜변환 에러

0

268

0

업로드자료 오류

1

385

1

20강 관련 문의드립니다.

1

315

1

17강 도입부 실습사이트 문의

2

314

1

4강 코드 오류메세지 관련 질의

1

390

2

merge와 그룹바이 관련 질문이 있습니다.

1

503

3

쉬운 도서 추천 좀 부탁드립니다.

2

409

2

1강2강에 있는 csv파일을 다운받으면 한글이 깨져서 나와요

1

260

1

주피터노트북 목록(contents) 만들기

1

637

1

df.loc[df["거주지"].isin(gu), "지역"] = df["거주지"] 질문있습니다

1

215

1

월 주 함꼐 value_counts()

1

231

1

day_count.iloc[i]와 day_count[i]의 차이 질문

1

357

1

df 인덱싱 질문입니다

1

190

1

그래프에 한글제목을 나타내고 싶습니다.

1

545

1

배운 것 기반으로 만들어보고 있는데 질문이 있습니다.

1

409

5

질문이요

1

310

1

set_index()

1

296

1

timeit 관련 질문

1

370

1

그래프 밑에 제목을 넣으려면 어떡해야하나요???

1

434

2

한글폰트 설치 후 나오지 않는 현상 문의

1

1190

3

CSV 파일 불러오기

1

584

1

크롤링으로 csv파일 가져오기

2

326

1

영상에서 소개해주시는 웹사이트

2

265

1

질문

1

243

2