Pandas ist eine leistungsstarke Python-Bibliothek zur Datenmanipulation und -analyse. Eine häufige Aufgabe besteht darin, eindeutige Werte aus einer DataFrame-Spalte zu extrahieren und diese dann zu sortieren. Dieser Artikel untersucht zwei effiziente Methoden, um dies zu erreichen.
Inhaltsverzeichnis
- Extraktion eindeutiger Werte mit der
unique()
-Methode - Extraktion eindeutiger Werte mit der
drop_duplicates()
-Methode - Sortieren eindeutiger Werte
Extraktion eindeutiger Werte mit der unique()
-Methode
Die unique()
-Methode bietet eine prägnante Möglichkeit, eindeutige Werte aus einer Pandas-Series (einer einzelnen Spalte) zu erhalten. Sie gibt ein NumPy-Array zurück, das nur die eindeutigen Elemente enthält und deren ursprüngliche Reihenfolge beibehält.
import pandas as pd
data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)
unique_values = df['col1'].unique()
print(unique_values) # Ausgabe: ['A' 'B' 'C' 'D']
Dieser Code erstellt einen Beispiel-DataFrame und verwendet dann unique()
für die Spalte ‚col1‘. Die Ausgabe ist ein NumPy-Array, das die eindeutigen Werte in der Reihenfolge ihres ersten Auftretens zeigt.
Extraktion eindeutiger Werte mit der drop_duplicates()
-Methode
Die drop_duplicates()
-Methode bietet mehr Flexibilität, insbesondere beim Umgang mit mehreren Spalten. Obwohl sie hauptsächlich zum Entfernen von doppelten Zeilen verwendet wird, kann sie eindeutige Werte aus einer einzelnen Spalte effizient extrahieren.
import pandas as pd
data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)
unique_values = df['col1'].drop_duplicates().values
print(unique_values) # Ausgabe: ['A' 'B' 'C' 'D']
Dieses Beispiel wendet drop_duplicates()
direkt auf die ‚col1‘-Series an. Das Attribut .values
konvertiert das Ergebnis in ein NumPy-Array. Die Reihenfolge der eindeutigen Werte spiegelt ihr erstes Auftreten im DataFrame wider.
Sortieren eindeutiger Werte
Beide oben genannten Methoden geben eindeutige Werte zurück, jedoch nicht unbedingt in sortierter Reihenfolge. Zum Sortieren verwenden Sie die sort()
-Funktion von NumPy oder die sort_values()
-Methode von Pandas.
import pandas as pd
import numpy as np
data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)
# Verwendung von unique() und sort()
unique_values = np.sort(df['col1'].unique())
print(unique_values) # Ausgabe: ['A' 'B' 'C' 'D']
# Verwendung von drop_duplicates() und sort_values()
unique_values = df['col1'].drop_duplicates().sort_values().values
print(unique_values) # Ausgabe: ['A' 'B' 'C' 'D']
Dies zeigt das Sortieren mit beiden Ansätzen. np.sort()
arbeitet auf dem NumPy-Array von unique()
, während sort_values()
auf der Pandas-Series von drop_duplicates()
verwendet wird. Beide liefern ein sortiertes Array. Für absteigende Reihenfolge mit sort_values()
verwenden Sie ascending=False
.
Zusammenfassend lässt sich sagen, dass sowohl unique()
als auch drop_duplicates()
eindeutige Werte effizient extrahieren. Die optimale Wahl hängt von Ihren spezifischen Bedürfnissen und davon ab, ob Sie mit einzelnen oder mehreren Spalten arbeiten. Denken Sie daran, die Ergebnisse mit der entsprechenden Methode für Ihre gewünschte Reihenfolge zu sortieren.