Jak obliczyć skumulowaną liczbę w pandach


Aby obliczyć liczbę skumulowaną w ramce DataFrame pandy, możesz użyć następujących metod:

Metoda 1: Zliczanie skumulowane według grup

 df[' cum_count '] = df. groupby (' col1 '). cumcount ()

Metoda 2: konto skumulowane przez kilka grup

 df[' cum_count '] = df. groupby ([' col1 ', ' col2 ']). cumcount ()

Poniższe przykłady pokazują, jak w praktyce używać każdej metody z następującą ramką DataFrame pand:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [14, 22, 25, 34, 30, 12, 10, 18]})

#view DataFrame
print (df)

  team position points
0 AG 14
1 AG 22
2 AG 25
3AF 34
4 BG 30
5 BG 12
6 BF 10
7 BF 18

Przykład 1: Zliczanie skumulowane według grupy w Pandas

Możemy użyć następującej składni, aby utworzyć nową kolumnę o nazwie team_cum_count , która wyświetla skumulowaną liczbę każdego zespołu w DataFrame:

 #calculate cumulative count by team
df[' team_cum_count '] = df. groupby (' team '). cumcount ()

#view updated DataFrame
print (df)

  team position points team_cum_count
0 AG 14 0
1 AG 22 1
2 AG 25 2
3 AF 34 3
4 BG 30 0
5 BG 12 1
6 BF 10 2
7 BF 18 3

Nowa kolumna o nazwie team_cum_count zawiera skumulowany licznik każdego zespołu , zaczynając od wartości zero.

Jeśli chcesz, aby liczenie zaczynało się od jednego, po prostu dodaj jeden na końcu linii:

 #calculate cumulative count (starting at 1) by team
df[' team_cum_count '] = df. groupby (' team '). cumcount () + 1

#view updated DataFrame
print (df)

  team position points team_cum_count
0 AG 14 1
1 AG 22 2
2 AG 25 3
3 AF 34 4
4 BG 30 1
5 BG 12 2
6 BF 10 3
7 BF 18 4

Nowa kolumna o nazwie team_cum_count zawiera skumulowany licznik każdego zespołu , zaczynając od wartości jeden.

Przykład 2: Oblicz skumulowaną liczbę według grup w Pandach

Możemy użyć następującej składni, aby utworzyć nową kolumnę o nazwie team_pos_cum_count , która wyświetla skumulowaną liczbę dla każdego zespołu i pozycji w ramce danych:

 #calculate cumulative count by team
df[' team_pos_cum_count '] = df. groupby ([' team ', ' position ']). cumcount () 

#view updated DataFrame
print (df)

  team position points team_pos_cum_count
0 AG 14 0
1 AG 22 1
2 AG 25 2
3 AF 34 0
4 BG 30 0
5 BG 12 1
6 BF 10 0
7 BF 18 1

Nowa kolumna o nazwie team_pos_cum_count zawiera skumulowaną liczbę każdego zespołu i pozycji , zaczynając od wartości zerowej.

Uwaga : pełną dokumentację funkcji cumcount w pandach znajdziesz tutaj .

Dodatkowe zasoby

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

Jak sumować określone kolumny w Pandach
Jak sumować kolumny na podstawie warunku w Pandach
Jak obliczyć odwrotną sumę skumulowaną w pandach

Dodaj komentarz

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