Panda's: hoe je unieke waarden kunt vinden en nan kunt negeren


U kunt de volgende aangepaste functie definiëren om panda’s te zoeken naar unieke waarden en NaN-waarden te negeren:

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

Deze functie retourneert een pandareeks die elke unieke waarde bevat, behalve NaN-waarden.

De volgende voorbeelden laten zien hoe u deze functie in verschillende scenario’s kunt gebruiken met de volgende panda’s DataFrame:

 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

Voorbeeld 1: Vind unieke waarden in de Panda-kolom en negeer NaN-waarden

Stel dat we de functie pandas unique() gebruiken om alle unieke waarden in de puntenkolom van het DataFrame weer te geven:

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

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

Houd er rekening mee dat de functie unique() standaard nan in de resultaten opneemt.

Stel echter dat we in plaats daarvan onze aangepaste functie unique_no_nan() gebruiken om de unieke waarden in de puntenkolom weer te geven:

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

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

Onze functie retourneert elke unieke waarde in de puntenkolom , exclusief NaN.

Voorbeeld 2: Vind unieke waarden in Pandas Groupby en negeer NaN-waarden

Stel dat we de panda’s groupby() en agg() functies gebruiken om alle unieke waarden in de puntenkolom weer te geven, gegroepeerd op de teamkolom :

 #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]

Houd er rekening mee dat de functie unique() standaard nan in de resultaten opneemt.

Stel echter dat we in plaats daarvan onze aangepaste functie unique_no_nan() gebruiken om de unieke waarden in de puntenkolom weer te geven, gegroepeerd op de teamkolom :

 #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

Onze functie retourneert elke unieke waarde in de puntenkolom voor elk team , de NaN-waarden niet meegerekend.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in panda’s kunt uitvoeren:

Panda’s: afzonderlijke rijen selecteren in DataFrame
Panda’s: unieke waarden uit de indexkolom halen
Panda’s: unieke combinaties van twee kolommen tellen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert