Pandaları kullanma 0.18.1, Tek sütunlu bir veri karesinin yuvarlanma ortalamasını almak isterim. 0.18.0 sürümünden bu, rolling() nesneleriyle yapılır. Bu yuvarlanan nesneler için varsayılan değer haklı olmalıdır. Yuvarlanabilen nesneyi ortadaki değere hizalamak için merkez = Doğru, iletebileceğiniz bir boolean argümanı vardır, ancak sola hizalamanın bir yolu yoktur. İşte bir örnek:Bir pandalar yuvarlanma nesnesini sola hizalama
df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
A
0 2
1 3
2 6
3 8
4 20
5 27
standart metot otomatik sağa hizalar, bu nedenle herhangi bir değer büyüklüğü üç bir pencere ile ilk iki endeksi değerlerini de var: Biz işlemini ortalamak-hizalayabilirsiniz
df.rolling(window=3).mean()
A
0 NaN
1 NaN
2 3.666667
3 5.666667
4 11.333333
5 18.333333
böyle:
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
Ama ne aradığım budur
Bunu, varsayılan doğru hizalama ile yaparak ve sonra yeniden dizine ekleyerek veya satırların sırasını ters çevirerek ve daha sonra "sağa hizalanmış" yaparak gerçekleştirebilirim, ancak bunlar ne olması gerektiğine ilişkin çalışmalardır. düz ileri bir işlem.
Bu, iyi bir çözümdür. Bu işlevsellik henüz haddeleme nesnelerinde değil sanırım. – Alex
Evet, haklısınız galiba. Ben de onu hiç görmedim. – jezrael
Bu cevabı kabul ettim çünkü istenen işlevsellik pandaların yuvarlanan nesnelerinde gerçekten yok ve bu en zarif çözümü sağlıyor. Eğer bu sol hizalamayı biraz daha dinamik bir şekilde yönetmek istendiyse, pencere boyutu bir w değişkeniyle ayarlanabilir ve daha sonra .shift() yöntemindeki argüman w-1 olabilir. – Alex