Ich habe einen Datenrahmen wie den folgenden:
%Vor%Wie berechnet man am besten eine kumulative Rückgabe für alle Spalten in der letzten Zeile?
Folgendes ist das beabsichtigte Ergebnis:
%Vor%Wenn die kumulative Rendite wie folgt berechnet wird:
%Vor%Was ist der beste Weg, dies in Pandas durchzuführen?
Dafür gibt es eine pandas cumprod()
Methode. Dies funktioniert für jede Spalte.
Dies wäre etwa 2 mal schneller als andere Lösungen in großen Datenmengen:
%Vor%Ich würde vorschlagen, nie apply zu verwenden, wenn Sie eine integrierte Methode finden können, da apply eine Schleife über den Datenrahmen macht, wodurch es langsam wird. Bult-in-Methode sind sehr effizient und normalerweise gibt es keine Möglichkeit, schneller als sie mit anwenden.
Eine andere Lösung:
%Vor% Dies fügt der Spalte df['Return']
1 hinzu, multipliziert alle Zeilen zusammen und subtrahiert dann eins vom Ergebnis. Dies führt zu einem einfachen Gleitkommawert. Das Ergebnis wird dann auf den Index "Kumulativ" gesetzt. Da dieser Index noch nicht existiert, wird er bis zum Ende angehängt des DataFrames :
Wenn Sie dies auf mehrere Spalten anwenden möchten:
%Vor%Dies würde Folgendes ausgeben (Ich habe eine zweite Spalte namens "Return2" erstellt, die eine Kopie von "Return" ist):
%Vor%