Panda: come trovare valori unici e ignorare nan


È possibile definire la seguente funzione personalizzata per cercare nei panda valori univoci e ignorare i valori NaN:

 def unique_no_nan(x):
    return x. dropna (). single ()

Questa funzione restituirà una serie Panda che contiene tutti i valori univoci tranne i valori NaN.

I seguenti esempi mostrano come utilizzare questa funzione in diversi scenari con i seguenti DataFrame panda:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Celtics', 'Celtics', 'Celtics'],
                   ' points ': [95, 95, 100, 113, 100, np.nan]})

#view DataFrame
print (df)

      team points
0 Mavs 95.0
1 Mavs 95.0
2 Mavs 100.0
3 Celtics 113.0
4 Celtics 100.0
5 Celtics NaN

Esempio 1: trova valori univoci nella colonna Panda e ignora i valori NaN

Supponiamo di utilizzare la funzione pandas unique() per visualizzare tutti i valori univoci nella colonna dei punti del DataFrame:

 #display unique values in 'points' column
df[' points ']. single ()

array([ 95., 100., 113., no])

Tieni presente che la funzione unique() include nan nei risultati per impostazione predefinita.

Tuttavia, supponiamo di utilizzare invece la nostra funzione personalizzata unique_no_nan() per visualizzare i valori univoci nella colonna dei punti :

 #display unique values in 'points' column and ignore NaN
unique_no_nan(df[' points '])

array([ 95., 100., 113.])

La nostra funzione restituisce ogni valore univoco nella colonna dei punti , escluso NaN.

Esempio 2: trova valori univoci in Pandas Groupby e ignora i valori NaN

Supponiamo di utilizzare le funzioni pandas groupby() e agg() per visualizzare tutti i valori univoci nella colonna dei punti , raggruppati per la colonna della squadra :

 #display unique values in 'points' column grouped by team
df. groupby (' team ')[' points ']. agg ([' single '])

	unique
team	
Celtics [113.0, 100.0, nah]
Mavs [95.0, 100.0]

Tieni presente che la funzione unique() include nan nei risultati per impostazione predefinita.

Tuttavia, supponiamo di utilizzare invece la nostra funzione personalizzata unique_no_nan() per visualizzare i valori univoci nella colonna dei punti , raggruppati per colonna della squadra :

 #display unique values in 'points' column grouped by team and ignore NaN
df. groupby (' team ')[' points ']. apply ( lambda x: unique_no_nan(x))

team
Celtics [113.0, 100.0]
Mavs [95.0, 100.0]
Name: points, dtype: object

La nostra funzione restituisce ogni valore univoco nella colonna dei punti per ciascuna squadra , senza contare i valori NaN.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni nei panda:

Panda: come selezionare singole righe in DataFrame
Panda: come ottenere valori univoci dalla colonna dell’indice
Panda: come contare combinazioni uniche di due colonne

Aggiungi un commento

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