So finden sie in pandas eindeutige werte in mehreren spalten
Häufig möchten Sie möglicherweise alle eindeutigen Werte über mehrere Spalten in einem Pandas-DataFrame finden. Glücklicherweise ist dies mit der Funktion pandas unique() in Kombination mit der Funktion ravel() einfach zu bewerkstelligen:
- unique() : Gibt eindeutige Werte in der Reihenfolge ihres Auftretens zurück.
- ravel(): gibt eine Reihe abgeflachter Daten zurück.
Angenommen, wir haben den folgenden Pandas-DataFrame:
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
Gibt ein Array eindeutiger Werte zurück
Der folgende Code zeigt, wie man eindeutige Werte in col1 und col2 findet:
p.d. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)
Aus dem Ergebnis können wir ersehen, dass diese beiden Spalten 7 eindeutige Werte enthalten: a, b, c, d, e, f, g .
Gibt einen DataFrame mit eindeutigen Werten zurück
Wenn Sie diese Werte als DataFrame statt als Array zurückgeben möchten, können Sie den folgenden Code verwenden:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) p.d. DataFrame (unique) 0 0 a 1b 2 tbsp 3rd 4 d 5f 6g
Gibt die Anzahl der eindeutigen Werte zurück
Wenn Sie nur die Anzahl der eindeutigen Werte über mehrere Spalten hinweg wissen möchten, können Sie den folgenden Code verwenden:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) len (unique) 7
Dies sagt uns, dass diese beiden Spalten 7 eindeutige Werte enthalten.
Zusätzliche Ressourcen
So führen Sie Pandas DataFrames über mehrere Spalten hinweg zusammen
So filtern Sie einen Pandas DataFrame nach mehreren Bedingungen