일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 정보처리기사
- 유튜브 기초강의
- linux
- PEPE
- 퀴팅
- docker
- 도커
- 노베이스 정처기 공부법
- 주식 콜옵션
- 유튜브 성공하는법
- 노베이스 정보처리기사 합격법
- 가장빨리부자되는법
- PER
- 고맙다트럼프
- hanspell
- PBR
- 유튜브
- 오블완
- 티스토리챌린지
- 정처기
- 퀴팅의기술
- 페페
- 이클립스
- DevOps
- 나스닥 개폭락
- 슬픈 개구리
- 십새
- 노베이스 정처기
- 인간관계론
- pepe the frog
Archives
- Today
- Total
실패는 성공을 위한 밑거름
파이선 롤링의 역할 | python rolling 본문
롤링에대해서 어떻게 되는지 예시로 설명
몇 초 동안 이성 처리 완료
롤링(rolling)은 Pandas에서 데이터를 일정한 구간(윈도우)으로 나누어 그 구간별로 계산을 수행하는 기능입니다. 예를 들어, 어떤 시계열 데이터가 있을 때, 연속된 몇 개의 값에 대해 평균, 합계, 혹은 다른 계산을 수행하고자 할 때 사용합니다.
예시로 설명하기
1. 데이터 준비
예를 들어, 숫자 데이터 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]가 있다고 해봅시다.
python
복사편집
import pandas as pd data = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
2. 롤링 윈도우 적용
여기서 윈도우 크기(window) 를 3으로 설정하면, 연속된 3개의 데이터를 묶어서 계산하게 됩니다.
즉, 다음과 같이 구간(윈도우)이 형성됩니다:
- 첫 번째 윈도우: [1, 2, 3]
- 두 번째 윈도우: [2, 3, 4]
- 세 번째 윈도우: [3, 4, 5]
- ...
- 마지막 윈도우: [8, 9, 10]
3. 각 윈도우에 연산 적용 (예: 평균)
각 윈도우에 대해 평균을 구하면 아래와 같이 됩니다:
- 첫 번째 윈도우: (1+2+3)/3 = 2.0
- 두 번째 윈도우: (2+3+4)/3 = 3.0
- 세 번째 윈도우: (3+4+5)/3 = 4.0
- ...
- 마지막 윈도우: (8+9+10)/3 = 9.0
이를 코드로 작성하면 다음과 같습니다:
python
복사편집
rolling_mean = data.rolling(window=3).mean() print(rolling_mean)
4. 결과 출력
출력 결과는 아래와 같이 됩니다:
Index값0 | NaN |
1 | NaN |
2 | 2.0 |
3 | 3.0 |
4 | 4.0 |
5 | 5.0 |
6 | 6.0 |
7 | 7.0 |
8 | 8.0 |
9 | 9.0 |
즉, 처음 두 개의 인덱스는 3개의 데이터를 채우지 못했기 때문에 NaN이 나오고, 이후부터는 각 윈도우에 대해 계산된 값이 나타납니다.
추가: 롤링과 선형 회귀
원래 질문에서 사용한 코드에서는, 단순 평균이 아니라 각 윈도우에 대해 선형 회귀를 적용하여 기울기(변화율)를 구하는 작업을 합니다.
예를 들어, 윈도우가 [a, b, c, ...]일 때, 인덱스를 x축, 데이터를 y축으로 두고 선형 회귀를 수행하면, 그 회귀선의 기울기를 구하는 것입니다. 이 기울기는 해당 구간의 데이터가 증가하는지, 감소하는지를 나타냅니다.
이렇게 rolling을 이용하면 데이터의 지역적 변화 추세를 파악할 수 있어, 시계열 분석, 주가 추세 분석 등에 매우 유용합니다.
'devops > back-end' 카테고리의 다른 글
파이선코드 이해가안가서 풀이한것 (개인풀이) (0) | 2025.03.09 |
---|---|
파이썬 언어교정 hanspell설치하기 (0) | 2025.02.17 |
파이썬에서 스레드로 동일한 함수사용할때 전역변수 처리 (1) | 2024.10.17 |
ModuleNotFoundError: No module named 'Crypto' 오류 해결방법 (0) | 2024.10.15 |
JAVA 팁 (0) | 2022.08.17 |