Come eseguire una funzione somma.se in pandas


È possibile utilizzare la seguente sintassi per trovare la somma delle righe in un DataFrame panda che soddisfa determinati criteri:

 #find sum of each column, grouped by one column
df. groupby (' group_column '). sum () 

#find sum of one specific column, grouped by one column
df. groupby (' group_column ')[' sum_column ']. sum ()

I seguenti esempi mostrano come utilizzare questa sintassi con il seguente frame di dati:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['a', 'a', 'b', 'b', 'b', 'c', 'c'],
                   ' points ': [5, 8, 14, 18, 5, 7, 7],
                   ' assists ': [8, 8, 9, 3, 8, 7, 4],
                   ' rebounds ': [1, 2, 2, 1, 0, 4, 1]})

#view DataFrame
df

	team points assists rebounds
0 to 5 8 1
1 to 8 8 2
2 b 14 9 2
3 b 18 3 1
4 b 5 8 0
5 c 7 7 4
6 c 7 4 1

Esempio 1: eseguire una funzione SOMMA.SE su una colonna

Il codice seguente mostra come trovare la somma dei punti per ciascuna squadra:

 df. groupby (' team ')[' points ']. sum ()

team
at 13
b 37
c 14

Questo ci dice:

  • La squadra “a” ha segnato un totale di 13 punti
  • La squadra “b” ha segnato un totale di 37 punti
  • La squadra “c” ha segnato un totale di 14 punti

Esempio 2: eseguire una funzione SOMMA.SE su più colonne

Il codice seguente mostra come trovare la somma dei punti e dei rimbalzi per ciascuna squadra:

 df. groupby (' team ')[[' points ', ' rebounds ']]. sum ()

rebound points
team		
at 13 3
b 37 3
c 14 5

Esempio 3: eseguire una funzione SOMMA.SE su tutte le colonne

Il codice seguente mostra come trovare la somma di tutte le colonne nel frame di dati per ciascuna squadra:

 df. groupby (' team '). sum ()

	points assists rebounds
team			
a 13 16 3
b 37 20 3
c 14 11 5

Risorse addizionali

Come eseguire una funzione COUNTIF in Pandas
Come contare gli avvistamenti di gruppo nei panda
Come trovare il valore massimo per gruppo su Pandas

Aggiungi un commento

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