Wie berechnet man sequentielle Zeilenwerte in einem Pandas-DataFrame mithilfe von „Anwenden' und „Verschieben'?

Mary-Kate Olsen
Freigeben: 2024-10-28 16:43:02
Original
643 Leute haben es durchsucht

How to Calculate Sequential Row Values in a Pandas DataFrame Using Apply and Shifting?

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
Nach dem Login kopieren

Wir möchten eine neue Spalte C erstellen , wobei:

  • Für den 31.01.2015 ist C gleich D.
  • Für alle anderen Zeilen wird C als C der vorherigen Zeile multipliziert mit A der aktuellen Zeile berechnet , plus das B der aktuellen Zeile.

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']
Nach dem Login kopieren

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']
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage