Panda: usa groupby per calcolare la media e non ignorare i nan


Quando si utilizza la funzione pandas groupby() per raggruppare in base a una colonna e calcolare il valore medio di un’altra colonna, i panda ignoreranno i valori NaN per impostazione predefinita.

Se invece vuoi visualizzare NaN se in una colonna sono presenti valori NaN , puoi utilizzare la seguente sintassi di base:

 df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

Questo particolare esempio raggrupperà le righe della colonna DataFrame per Team e quindi calcolerà il valore medio della colonna dei punti senza ignorare i valori NaN .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: usa pandas groupby() e non ignorare NaNs

Supponiamo di avere il seguente DataFrame panda che contiene informazioni su vari giocatori di basket:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [15, np.nan, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team points
0 to 15.0
1 A NaN
2 A 24.0
3 A 25.0
4 A 20.0
5 B 35.0
6 B 34.0
7B 19.0
8B 14.0
9B 12.0

Supponiamo di utilizzare la seguente sintassi per calcolare il valore del punto medio, raggruppato per squadra :

 #calculate mean of points, grouped by team
df. groupby (' team ')[' points ']. mean ()

team
At 21.0
B 22.8
Name: points, dtype: float64

Tieni presente che viene restituito il valore del punto medio per ciascuna squadra , anche se è presente un valore NaN per la squadra A nella colonna dei punti.

Per impostazione predefinita, i panda ignorano semplicemente il valore NaN quando calcolano la media.

Se invece vuoi visualizzare NaN come valore medio se sono effettivamente presenti NaN , puoi utilizzare la seguente sintassi:

 #calculate mean points value grouped by team and don't ignore NaNs
df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

      points
team	
To NaN
B 22.8

Tieni presente che questa volta viene restituito un valore NaN come valore del punto medio per la squadra A.

Utilizzando l’argomento skipna=False , abbiamo detto ai panda di non ignorare i valori NaN nel calcolo della media.

Risorse addizionali

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

Come contare valori univoci utilizzando Pandas GroupBy
Come applicare una funzione a Pandas Groupby
Come creare un grafico a barre da Pandas GroupBy

Aggiungi un commento

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