Ich möchte Rolling Mean Funktion im Datenrahmen anwenden. Ich habe mehr als eine Kategorie (A und B in der Spaltenkategorie) im Datenrahmen, daher muss ich den rollenden Mittelwert für jede Kategorie berechnen, und das ist mein Problem.Anwendung der Funktion in einer neuen Datenspaltenspalte basierend auf dem Wert einer anderen Spalte
Datenframe sieht wie folgt aus. Die Spalte Rolling_Mean ist das erwartete Ergebnis.
Date Category Value Rolling_Mean
01.01.2017 A 12,30 NaN
02.01.2017 A 12,50 NaN
03.01.2017 A 12,90 12,57
04.01.2017 A 13,10 12,70
05.01.2017 A 12,90 12,74
06.01.2017 A 13,55 12,88
07.01.2017 A 13,12 12,91
01.01.2017 B 1,14 NaN
02.01.2017 B 1,52 NaN
03.01.2017 B 1,74 1,47
04.01.2017 B 2,12 1,63
05.01.2017 B 1,75 1,65
06.01.2017 B 1,69 1,66
07.01.2017 B 1,35 1,62
berechnen Roll meine ich Pandas Roll verwenden:
df['Rolling_Mean'] = df['Value'].rolling (window=3).mean()
aber ich bin nicht in der Lage Rollen für mehr als eine Kategorie bedeuten, zu berechnen.
Ich habe versucht, numpy.where (unten) zu verwenden, um dies zu berechnen, aber es funktioniert nur für eine Kategorie, und ich suche eine Lösung, die für 10 Kategorien funktioniert.
df['Rolling_Mean'] = np.where((df.Category == 'A'), df['Value'].rolling(window=3).mean(), 0)
Vielen Dank, es funktioniert! – bar1
Froh kann helfen! Schöner Tag! – jezrael