Come calcolare il numero cumulativo di panda


È possibile utilizzare i seguenti metodi per calcolare un numero cumulativo in un DataFrame panda:

Metodo 1: conteggio cumulativo per gruppo

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

Metodo 2: conto cumulativo per più gruppi

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

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con i seguenti DataFrame panda:

 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

Esempio 1: conteggio cumulativo per gruppo presso Pandas

Possiamo utilizzare la seguente sintassi per creare una nuova colonna chiamata team_cum_count che visualizza il conteggio cumulativo di ciascuna squadra nel 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

La nuova colonna denominata team_cum_count contiene il conteggio cumulativo di ciascuna squadra , a partire da un valore pari a zero.

Se vuoi che il conteggio inizi da uno, aggiungi semplicemente uno alla fine della riga:

 #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

La nuova colonna denominata team_cum_count contiene il conteggio cumulativo di ciascuna squadra , a partire dal valore uno.

Esempio 2: calcolare il conteggio cumulativo per gruppo in Pandas

Possiamo utilizzare la seguente sintassi per creare una nuova colonna chiamata team_pos_cum_count che visualizza il conteggio cumulativo per ciascuna squadra e posizione nel DataFrame:

 #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

La nuova colonna denominata team_pos_cum_count contiene il conteggio cumulativo di ciascuna squadra e posizione a partire da un valore pari a zero.

Nota : puoi trovare la documentazione completa della funzione cumcount in panda qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:

Come sommare colonne specifiche in Pandas
Come sommare le colonne in base a una condizione in Pandas
Come calcolare una somma cumulativa inversa in panda

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *