Come calcolare una somma cumulativa inversa in panda
La funzione cumsum() può essere utilizzata per calcolare la somma cumulativa dei valori in una colonna di un DataFrame panda.
È possibile utilizzare la seguente sintassi per calcolare una somma cumulativa inversa di valori in una colonna:
df[' cumsum_reverse '] = df. loc [:: -1 , ' my_column ']. cumsum ()[:: -1 ]
Questa particolare sintassi aggiunge una nuova colonna chiamata cumsum_reverse a un DataFrame panda che visualizza la somma cumulativa inversa dei valori nella colonna etichettata my_column .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: calcolare una somma cumulativa inversa in panda
Supponiamo di avere il seguente DataFrame panda che mostra le vendite totali effettuate da un negozio per 10 giorni consecutivi:
import pandas as pd #createDataFrame df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' sales ': [3, 6, 0, 2, 4, 1, 0, 1, 4, 7]}) #view DataFrame df day sales 0 1 3 1 2 6 2 3 0 3 4 2 4 5 4 5 6 1 6 7 0 7 8 1 8 9 4 9 10 7
Possiamo utilizzare la seguente sintassi per calcolare una somma parziale inversa della colonna delle vendite:
#add new column that shows reverse cumulative sum of sales
df[' cumsum_reverse_sales '] = df. loc [:: -1 , ' sales ']. cumsum ()[:: -1 ]
#view updated DataFrame
df
day sales cumsum_reverse_sales
0 1 3 28
1 2 6 25
2 3 0 19
3 4 2 19
4 5 4 17
5 6 1 13
6 7 0 12
7 8 1 12
8 9 4 11
9 10 7 7
La nuova colonna intitolata cumsum_reverse_sales mostra le vendite cumulative dell’ultima riga .
Ecco come interpreteremmo i valori nella colonna cumsum_reverse_sales :
- La somma cumulativa delle vendite per il giorno 10 è 7 .
- La somma cumulativa delle vendite per il giorno 10 e il giorno 9 è 11 .
- La somma cumulativa delle vendite per il giorno 10, il giorno 9 e il giorno 8 è 12 .
- La somma cumulativa delle vendite per il giorno 10, il giorno 9, il giorno 8 e il giorno 7 è 12 .
E così via.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:
Come sommare colonne specifiche in Pandas
Come eseguire una somma GroupBy in Pandas
Come sommare le colonne in base a una condizione in Pandas