Maison >développement back-end >Tutoriel Python >Comment calculer les valeurs de lignes séquentielles dans un DataFrame Pandas à l'aide de Apply et Shifting ?
Pandas applique des calculs de valeur de ligne séquentielle dans les dataframes
Lorsque vous travaillez avec des dataframes Pandas, vous pouvez rencontrer des situations où vous devez utiliser la valeur d'une ligne précédente dans un calcul. Cependant, cela peut présenter des défis, en particulier lorsque la valeur précédente est également calculée dans la même fonction d'application.
Considérez le cadre de données 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
Nous souhaitons créer une nouvelle colonne, C , où :
L'utilisation d'une fonction apply et d'un shift avec une condition if-else peut ne pas fonctionner en raison d'erreurs clés. Au lieu de cela, nous pouvons suivre ces étapes :
Étape 1 : Initialiser la valeur dérivée
Tout d'abord, nous définissons la valeur C de la première ligne pour qu'elle soit égale à D :
df.loc[0, 'C'] = df.loc[0, 'D']
Étape 2 : Itérer et calculer
Ensuite, nous parcourons les lignes restantes et calculons C en utilisant la valeur C de la ligne précédente :
for i in range(1, len(df)): df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']
Résultat :
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
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!