10분55초 질문있습니다.
378
작성한 질문수 3
안녕하십니까 질문이 있습니다.
강의를 들어보니 rolling에 대한 내용은 세세하게 말씀해주셔서 이해하는데에 문제될 것이 없었으나 expanding에 대한 내용은 부족하여 이해하기 어려웠습니다.
정리를 하자면, 판다스에서 expanding이 정확히 무슨 역할을 하는 메소드인지 궁금합니다.
또한 df.expanding(2).sum()에서 expanding 뒤쪽 괄호에 2가 들어가는데 이 때 쓴 2는 무슨 역할 인지도 궁금합니다.
감사합니다.
답변 1
1
좋은 질문 감사합니다. 예제 코드를 만들어서 답을 하려다 보니 늦어졌습니다.
질문주신 expanding(2)의 2는 min_periods 를 의미합니다.
해당 내용은 최소 데이터 갯수를 몇 개로 window 사이즈를 지정할 것인지를 의미하는데 여기에서는 2개 이상 있어야지 해당 값의 결과가 나오게 됩니다. sum을 하게 되면 누적합(cumsum)을 구한 값과 비슷하지만 expanding은 min_periods 이상이 되면 중간에 결측치가 있어도 해당 값을 계속 누적해서 더하게 됩니다. 아래의 코드로 해당 예제를 보실 수 있을 것 같습니다.
또, rolling 과의 차이점은 rolling은 윈도우가 이동하며 해당 구간의 평균이나 합을 구하지만 expanding은 누적해서 값을 더하거나 평균을 구합니다. (연산은 더하기, 평균 외에도 다양한 연산이 가능하긴 합니다.)

기회가 되면 해당 내용으로 추가 영상을 만들어볼 예정입니다.
영상을 만들게 되면 이 질문에 답글을 다시 남기겠습니다.
새해 복 많이 받으세요! :)
----------------------
import pandas as pd
df = pd.DataFrame({
'size': range(1, 10),
'data': [4, 1, 2, np.nan, 4, 5, np.nan, 7, 8]})
df["expanding(sum)win2"] = df["data"].expanding(2).sum()
df["expanding(sum)win3"] = df["data"].expanding(3).sum()
df["expanding(sum)win4"] = df["data"].expanding(4).sum()
df["cumsum"] = df["data"].cumsum()
df["expanding(sum)/size"] = df["expanding(sum)win2"] / df["size"]
df["Mean"] = df["data"].expanding(2).mean()
df
날짜변환 에러
0
260
0
업로드자료 오류
1
374
1
20강 관련 문의드립니다.
1
300
1
17강 도입부 실습사이트 문의
2
299
1
4강 코드 오류메세지 관련 질의
1
375
2
merge와 그룹바이 관련 질문이 있습니다.
1
494
3
쉬운 도서 추천 좀 부탁드립니다.
2
394
2
1강2강에 있는 csv파일을 다운받으면 한글이 깨져서 나와요
1
252
1
주피터노트북 목록(contents) 만들기
1
633
1
df.loc[df["거주지"].isin(gu), "지역"] = df["거주지"] 질문있습니다
1
208
1
월 주 함꼐 value_counts()
1
228
1
day_count.iloc[i]와 day_count[i]의 차이 질문
1
352
1
df 인덱싱 질문입니다
1
185
1
그래프에 한글제목을 나타내고 싶습니다.
1
535
1
배운 것 기반으로 만들어보고 있는데 질문이 있습니다.
1
404
5
질문이요
1
302
1
set_index()
1
288
1
timeit 관련 질문
1
363
1
그래프 밑에 제목을 넣으려면 어떡해야하나요???
1
421
2
한글폰트 설치 후 나오지 않는 현상 문의
1
1174
3
CSV 파일 불러오기
1
573
1
크롤링으로 csv파일 가져오기
2
320
1
영상에서 소개해주시는 웹사이트
2
261
1
질문
1
230
2





