Pandas beantragen sequentielle Zeilenwertberechnungen in Datenrahmen
Bei der Arbeit mit Pandas-Datenrahmen kann es vorkommen, dass Sie den Wert verwenden müssen einer vorherigen Zeile in einer Berechnung. Dies kann jedoch zu Herausforderungen führen, insbesondere wenn der vorherige Wert auch innerhalb derselben Apply-Funktion berechnet wird.
Beachten Sie den folgenden Datenrahmen:
Index_Date A B C D ================================ 2015-01-31 10 10 Nan 10 2015-02-01 2 3 Nan 22 2015-02-02 10 60 Nan 280 2015-02-03 10 100 Nan 250
Wir möchten eine neue Spalte C erstellen , wobei:
Die Verwendung einer Apply-Funktion und einer Verschiebung mit einer if-else-Bedingung funktioniert aufgrund von Schlüsselfehlern möglicherweise nicht. Stattdessen können wir diesen Schritten folgen:
Schritt 1: Abgeleiteten Wert initialisieren
Zuerst setzen wir den C-Wert für die erste Zeile auf D:
df.loc[0, 'C'] = df.loc[0, 'D']
Schritt 2: Iterieren und berechnen
Als nächstes iterieren wir durch die verbleibenden Zeilen und berechnen C mithilfe des C-Werts der vorherigen Zeile:
for i in range(1, len(df)): df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']
Ergebnis:
Index_Date A B C D 0 2015-01-31 10 10 10 10 1 2015-02-01 2 3 23 22 2 2015-02-02 10 60 290 280 3 2015-02-03 10 100 3000 250
Das obige ist der detaillierte Inhalt vonWie berechnet man sequentielle Zeilenwerte in einem Pandas-DataFrame mithilfe von „Anwenden' und „Verschieben'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!