Pandas groupby에서 겹치지 않는 롤링 또는 슬라이딩 창을 만들고 싶습니다.
import pandas as pd
df1 = pd.DataFrame( {'a1':['A','A','B','B','B','B','B','B'],'a2':[1,1,1,2,2,2,2,2], 'b':[1,2,5,5,5,4,6,2]})
겹치는 롤링 윈도우의 경우 이렇게 할 수 있습니다.
df1.groupby(['a1','a2']).rolling(2).mean()
그러나 그것을 겹치지 않게 만드는 방법이 있습니까?
출력은 다음과 같아야합니다.
pd.DataFrame('a1':['A','B','B','B','B'],'a2':[1,1,2,2,2],'b':[1.5,NaN,5,5,NaN])
설명
언제
a1
이다
A
과
a2
이다
1
, b의 값은
1
과
2
. 두 결과를 모두 추가
1.5
.
언제
a1
이다
B
과
a2
이다
1
, 의 가치
b
이다
5
. 가치로
b
슬라이딩 윈도우의 길이보다 작습니다.
NaN
.
언제
a1
이다
B
과
a2
이다
2
, b의 값은
5,5,4,6,2
. 슬라이딩 윈도우는
2
, 그래서 추가
(5+5)/2=5
,
(4+6)/2=5
. 마지막 값은
NaN
길이가 슬라이딩 윈도우보다 작기 때문입니다.
- 답변 # 1
관련 자료
- python - 팬더 그룹 별 롤링 동작
- python - 판다 - 여러 값으로 그룹화?
- python - pandas groupby - 중복 제거
- python - pandas - groupby unstack, 중복 색인 오류
- Python pandas - 파이썬 판다 - groupby + 조건부 셀 값 수
- python - Pandas에서 rolling ()과 함께 작동하지 않는 pct_change에 대한 해결 방법?
- python - Pandas Groupby에서 빈도 계산
- python - pandas rolling apply - apply ()에 예기치 않은 키워드 인수가 있습니다
- python - Pandas Group 여러 열과 여러 인덱스를 사용하여 사전으로 변환
- python - Pandas groupby 출력
- python - pandas groupby () 객체를 다른 인덱스를 가진 동일한 변수에 저장하는 방법
- group by - 새 열의 Pandas groupby 및 agg 값
- Pandas - 판다 - 조건이있는 마지막 n 요소의 롤링 합
- python - 목록을 요소로 사용하는 팬더 열에 대한 Groupby 및 Aggregate 및 목록에서 고유 한 값 가져 오기
- python - 팬더는 1 년 동안 합계를 롤링합니까?
- python - pandas dataframe 질문 - groupby는 가장 큰 가치를 보여줍니다
- python - 팬더 - groupby가 pct_change를 올바르게 계산하지 않습니다
- python - pandas - 두 번째 열 목록을 사용하는 query () groupby () mean ()
- python - Pandas 그룹 별 객체의 하위 세트를 반복합니다
글쎄요, 한 가지 접근 방식 (매우 우아하지는 않음)은 다음과 같습니다.
산출
주요 아이디어는 연속적인 청크로 그룹화하는 것이며 여기에서 수행됩니다.