12
팬더 0.18.1을 사용하여 1 열 데이터 프레임의 롤링 평균을 취하고 싶습니다. 버전 0.18.0 이후로 rolling() 객체를 사용하여이 작업을 수행합니다. 이러한 롤링 객체의 기본값은 오른쪽 정렬됩니다. 롤링 객체를 중심 값에 정렬하기 위해 부울 인수 인 center = True를 전달할 수 있지만 왼쪽 정렬하는 방법은없는 것처럼 보입니다. 여기서 예이다 :팬더 롤링 대상물의 왼쪽 맞춤
df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
A
0 2
1 3
2 6
3 8
4 20
5 27
표준 방법 자동 오른쪽으로 정렬되므로 값의 크기가 3 인 창 처음 두 indecies에 없다 : 우리가 조작 가운데 정렬 할
df.rolling(window=3).mean()
A
0 NaN
1 NaN
2 3.666667
3 5.666667
4 11.333333
5 18.333333
같은 :
df.rolling(3).mean()
A
0 3.666667
1 5.666667
2 11.333333
3 18.333333
4 NaN
5 NaN
01 :
df.rolling(window=3).mean(center=True)
A
0 NaN
1 3.666667
2 5.666667
3 11.333333
4 18.333333
5 NaN
는하지만 내가 무엇을 찾고있어 이것이다
기본 오른쪽 정렬로 수행 한 다음 다시 인덱싱하거나 행의 순서를 반대로 변경 한 다음 "오른쪽 맞춤"으로 수행하면이 작업을 수행 할 수 있습니다. 똑 바른 조작.
이 좋은 솔루션입니다. 나는 그 기능이 아직 롤링 객체에 없다고 생각한다. – Alex
예, 당신이 옳다고 생각합니다. 나는 그것을 결코 보지 않는다. – jezrael
원하는 기능이 팬더 롤링 개체에 실제로 없기 때문에이 대답을 받아 들였고 이것이 가장 우아한 솔루션을 제공합니다. 이 왼쪽 정렬을 좀 더 동적으로 관리하려면 윈도우 크기를 변수 w로 설정 한 다음 .shift() 메서드의 인수를 w-1로 지정할 수 있습니다. – Alex