Oft sind Sie daran interessiert, alle eindeutigen Werte in mehreren Spalten eines Pandas DataFrame zu 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 abgeflachte Datenreihe zurück.

Angenommen, wir haben die folgenden Pandas DataFrame:

import pandas as pd

# Dataframe erstellen
df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e'],
                   'col2': ['a', 'c', 'e', 'f', 'g'],
                   'col3': [11, 8, 10, 6, 6]})

# Dataframe anzeigen 
print(df)

  col1 col2  col3
0    a    a    11
1    b    c     8
2    c    e    10
3    d    f     6
4    e    g     6

Array mit eindeutigen Werten zurückgeben

Der folgende Code zeigt, wie Sie die eindeutigen Werte in Spalte 1 und Spalte 2 finden:

pd.unique(df[['col1', 'col2']].values.ravel())

array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)

Aus der Ausgabe können wir ersehen, dass es in diesen beiden Spalten 7 eindeutige Werte gibt: a, b, c, d, e, f, g.

Rückgabe des DataFrames mit eindeutigen Werten

Wenn Sie diese Werte als DataFrame anstelle eines Arrays zurückgeben möchten, können Sie den folgenden Code verwenden:

uniques = pd.unique(df[['col1', 'col2']].values.ravel())

pd.DataFrame(uniques)

    0
0   a
1   b
2   c
3   e
4   d
5   f
6   g

Anzahl der eindeutigen Werte zurückgeben

Wenn Sie lediglich die Anzahl der eindeutigen Werte in mehreren Spalten ermitteln möchten, können Sie den folgenden Code verwenden:

uniques = pd.unique(df[['col1', 'col2']].values.ravel())

len(uniques)
7

Dies sagt uns, dass es in diesen beiden Spalten 7 eindeutige Werte gibt.

Zusätzliche Ressourcen

So führen Sie Pandas DataFrames in mehreren Spalten zusammen

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: