„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie berechnet man eine Spalte basierend auf vorherigen Zeilenwerten in Pandas mithilfe der Funktion „apply()“?

Wie berechnet man eine Spalte basierend auf vorherigen Zeilenwerten in Pandas mithilfe der Funktion „apply()“?

Veröffentlicht am 01.11.2024
Durchsuche:447

How to Calculate a Column Based on Previous Row Values in Pandas Using the `apply()` Function?

Anwenden von Berechnungen mit vorherigen Zeilenwerten in Pandas

In Pandas besteht die Herausforderung nicht darin, vorherige Zeilenwerte in Berechnungen während der Datenmanipulation einzubeziehen ungewöhnlich. Ein solches Szenario beinhaltet die Notwendigkeit, den vorherigen Zeilenwert zu verwenden, wenn eine neue Spalte mit der Funktion apply() berechnet wird.

Stellen Sie sich ein Szenario vor, in dem wir einen DataFrame mit der folgenden Struktur haben:

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

Unser Ziel ist es, die Spalte „C“ mit berechneten Werten zu füllen. Für die erste Zeile wird „C“ von „D“ abgeleitet. Für nachfolgende Zeilen wird „C“ berechnet, indem der „C“-Wert der vorherigen Zeile mit dem „A“-Wert für die aktuelle Zeile multipliziert und der „B“-Wert addiert wird.

Ansatz

Um dies zu erreichen, verwenden wir eine Kombination aus Initialisierung und Iteration innerhalb der Funktion apply().

  1. Initialisieren Sie den Wert „C“ für die erste Zeile mit dem Wert aus „D“. .
df.loc[0, 'C'] = df.loc[0, 'D']
  1. Durchlaufen Sie die verbleibenden Zeilen und berechnen Sie die 'C'-Werte:
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

Dieser Ansatz füllt die Spalte „C“ effektiv mit den gewünschten berechneten Werten:

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
2015-02-03  10  100  3000  250
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3