Jak obliczyć odwrotną sumę skumulowaną w pandach


Funkcji cumsum() można użyć do obliczenia skumulowanej sumy wartości w kolumnie pandy DataFrame.

Aby obliczyć odwrotną skumulowaną sumę wartości w kolumnie, możesz użyć następującej składni:

 df[' cumsum_reverse '] = df. loc [:: -1 , ' my_column ']. cumsum ()[:: -1 ]

Ta konkretna składnia dodaje nową kolumnę o nazwie cumsum_reverse do pandy DataFrame, która wyświetla odwrotną skumulowaną sumę wartości w kolumnie oznaczonej my_column .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: oblicz odwrotną sumę skumulowaną w pandach

Załóżmy, że mamy następującą ramkę danych pand, która pokazuje całkowitą sprzedaż dokonaną przez sklep przez 10 kolejnych dni:

 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

Możemy użyć następującej składni, aby obliczyć odwrotną sumę bieżącą kolumny sprzedaży:

 #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

Nowa kolumna zatytułowana cumsum_reverse_sales wyświetla skumulowaną sprzedaż z ostatniego wiersza .

Oto jak zinterpretowalibyśmy wartości w kolumnie cumsum_reverse_sales :

  • Skumulowana suma sprzedaży w dniu 10 wynosi 7 .
  • Skumulowana suma sprzedaży w dniu 10. i 9. wynosi 11 .
  • Skumulowana suma sprzedaży w dniu 10, 9 i 8 wynosi 12 .
  • Skumulowana suma sprzedaży w dniu 10, dniu 9, dniu 8 i dniu 7 wynosi 12 .

I tak dalej.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:

Jak sumować określone kolumny w Pandach
Jak wykonać sumę GroupBy w Pandach
Jak sumować kolumny na podstawie warunku w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *