Rolling Mean auf Pandas in einer bestimmten Spalte

8

Ich habe einen solchen Datenrahmen, der aus einer CSV importiert wird.

%Vor%

Ich wollte eine neue Spalte MA hinzufügen, die Rolling Mean für den Spalten-Pop berechnet. Ich habe Folgendes versucht:

%Vor%

Ich bekomme einen Fehler

%Vor%

Also dachte ich, lass es mich versuchen, wenn es einfach funktioniert, ohne eine Spalte hinzuzufügen. Ich habe

benutzt %Vor%

Ich habe die Ausgabe

%Vor%

Ich kann Rolling Mean nicht auf den Spalten-Pop anwenden. Was mache ich falsch?

    
Anti21 16.04.2017, 13:15
quelle

3 Antworten

13

Um eine Spalte zuzuweisen, können Sie basierend auf Series :

ein rollendes Objekt erstellen %Vor%

Die Antwort von ac2001 ist nicht die performanteste Art, dies zu tun. Er berechnet einen rollenden Mittelwert für jede Spalte im Datenrahmen und weist dann die Spalte "ma" mit der Spalte "pop" an. Die erste Methode der folgenden ist viel effizienter:

%Vor%

Ich würde die Verwendung der zweiten Methode nicht empfehlen, es sei denn, Sie müssen die berechneten Rollmittel für alle anderen Spalten speichern.

    
Andrew L 16.04.2017, 14:02
quelle
3

Diese Lösung hat für mich funktioniert.

%Vor%

Ich denke, das Problem könnte darin bestehen, dass on = 'pop' nur die Spalte ändert, um das Rolling Window aus dem Index zu machen.

Aus der Doc-Zeichenfolge: "Für einen Datenrahmen die Spalte, in der das rollierende Fenster berechnet werden soll, und nicht der Index"

    
ac2001 16.04.2017 13:25
quelle
2

Bearbeiten: pd.rolling_mean ist in Pandas veraltet und wird in Zukunft entfernt. Stattdessen: Mit pd.rolling können Sie tun:

%Vor%

für einen Datenrahmen df :

%Vor%

Um zu bekommen:

%Vor%

Dokumentation: Ссылка

Alt: Obwohl es veraltet ist, können Sie Folgendes verwenden:

%Vor%

erhalten:

%Vor%

Dokumentation: Ссылка

    
Chuck 16.04.2017 13:27
quelle

Tags und Links