Maison  >  Article  >  développement back-end  >  Comment calculer une colonne dans un DataFrame en utilisant les valeurs des lignes précédentes avec « apply() » ?

Comment calculer une colonne dans un DataFrame en utilisant les valeurs des lignes précédentes avec « apply() » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 19:26:02408parcourir

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

Itération à travers des DataFrames avec des considérations de valeur précédentes à l'aide de apply()

Dans les pandas, la fonction apply() est couramment utilisée pour appliquer une fonction à chaque ligne d'un DataFrame . Cependant, des défis surviennent lorsque la valeur de la ligne précédente est également calculée à l'aide de la même méthode apply().

Considérez le DataFrame suivant :

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

L'objectif est de dériver la colonne C :

  • Pour le 31/01/2015, définissez-le sur la valeur de D.
  • Pour les lignes suivantes, multipliez la valeur de la ligne précédente de C par la valeur de la ligne actuelle de A et ajoutez-la à la valeur de ligne actuelle de B.

Solution :

Pour y parvenir, nous définissons d'abord la valeur initiale de C pour le 31/01/2015 :

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

Ensuite, nous parcourons les lignes restantes et mettons à jour les valeurs C avec les calculs souhaités :

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

Le DataFrame final après ces opérations :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn