Heim  >  Artikel  >  Backend-Entwicklung  >  Wie berechnet man eine Spalte in einem DataFrame anhand vorheriger Zeilenwerte mit „apply()“?

Wie berechnet man eine Spalte in einem DataFrame anhand vorheriger Zeilenwerte mit „apply()“?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 19:26:02408Durchsuche

How to Calculate a Column in a DataFrame Using Previous Row Values with `apply()`?

Iterieren durch DataFrames mit Überlegungen zu vorherigen Werten mit apply()

In Pandas wird die Funktion apply() üblicherweise verwendet, um eine Funktion auf jede Zeile eines DataFrame anzuwenden . Es treten jedoch Herausforderungen auf, wenn der vorherige Zeilenwert auch mit derselben apply()-Methode berechnet wird.

Beachten Sie den folgenden DataFrame:

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

Das Ziel besteht darin, Spalte C abzuleiten:

  • Setzen Sie ihn für den 31.01.2015 auf den Wert von D.
  • Multiplizieren Sie für nachfolgende Zeilen den vorherigen Zeilenwert von C mit dem aktuellen Zeilenwert von A und addieren Sie ihn dazu der aktuelle Zeilenwert von B.

Lösung:

Um dies zu erreichen, legen wir zunächst den Anfangswert von C für den 31.01.2015 fest:

<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>

Dann durchlaufen wir die verbleibenden Zeilen und aktualisieren die C-Werte mit den gewünschten Berechnungen:

<code class="python">for i in range(1, len(df)):
    df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']</code>

Der endgültige DataFrame nach diesen Operationen:

Index_Date A B C D
2015-01-31 10 10 10 10
2015-02-01 2 3 23 22
2015-02-02 10 60 290 280

Das obige ist der detaillierte Inhalt vonWie berechnet man eine Spalte in einem DataFrame anhand vorheriger Zeilenwerte mit „apply()“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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