Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-03 19:26:02
original
537 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal