Hoe unieke waarden in meerdere kolommen in panda's te vinden
Vaak wil je misschien alle unieke waarden over meerdere kolommen vinden in een pandas DataFrame. Gelukkig is dit eenvoudig te doen met behulp van de pandas unique() functie in combinatie met de ravel() functie:
- unique() : retourneert unieke waarden in volgorde van verschijning.
- ravel(): retourneert een reeks afgevlakte gegevens.
Stel dat we bijvoorbeeld de volgende panda’s DataFrame hebben:
import pandas as pd #createDataFrame df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e'], 'col2': ['a', 'c', 'e', 'f', 'g'], 'col3': [11, 8, 10, 6, 6]}) #view DataFrame print(df) col1 col2 col3 0 aa 11 1 bc 8 2 this 10 3 df 6 4 eg 6
Retourneert een array met unieke waarden
De volgende code laat zien hoe u unieke waarden kunt vinden in col1 en col2 :
p.d. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)
Uit het resultaat kunnen we zien dat er 7 unieke waarden in deze twee kolommen voorkomen: a, b, c, d, e, f, g .
Retourneert DataFrame van unieke waarden
Als je deze waarden als DataFrame wilt retourneren in plaats van als array, kun je de volgende code gebruiken:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) p.d. DataFrame (unique) 0 0 a 1b 2 tbsp 3rd 4 d 5f 6g
Retourneert het aantal unieke waarden
Als u alleen het aantal unieke waarden over meerdere kolommen wilt weten, kunt u de volgende code gebruiken:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) len (unique) 7
Dit vertelt ons dat er 7 unieke waarden in deze twee kolommen staan.
Aanvullende bronnen
Hoe Pandas DataFrames over meerdere kolommen samen te voegen
Hoe u een Pandas DataFrame op meerdere voorwaarden kunt filteren