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 …
Oft möchten Sie die Zeilen eines Pandas DataFrame anhand ihres Indexwerts auswählen.
Wenn Sie Zeilen basierend auf der Ganzzahlindizierung auswählen möchten, können Sie die .iloc-Funktion verwenden.
Wenn Sie Zeilen basierend auf der Etikettenindizierung auswählen möchten, können Sie die Funktion .loc verwenden.
Dieses Tutorial enthält ein Beispiel für die praktische Verwendung dieser Funktionen.
Beispiel 1: Wählen Sie Zeilen basierend auf der Ganzzahlindizierung aus
Der folgende Code zeigt, wie Sie einen Pandas-DataFrame erstellen und mit .iloc die Zeile mit einem ganzzahligen Indexwert von 3 auswählen:
import pandas as pd
import numpy as np
#Machen Sie dieses Beispiel reproduzierbar
np.random.seed(0)
# Dataframe erstellen
df = pd.DataFrame(np.random.rand(6,2), index=range(0,18,3), columns=['A', 'B'])
# Dataframe anzeigen
df
A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895
# Wählen Sie die 5. Zeile des DataFrame aus
df.iloc[[4]]
A B
12 0.963663 0.383442
Wir können eine ähnliche Syntax verwenden, um mehrere Zeilen auszuwählen:
#Wählen Sie die 3., 4. und 5. Zeile des DataFrame aus
df.iloc[[2, 3, 4]]
A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
Oder wir könnten alle Zeilen in einem Bereich auswählen:
#Wählen Sie die 3., 4. und 5. Zeile des DataFrame aus
df.iloc[2:5]
A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
Beispiel 2: Wählen Sie Zeilen basierend auf der Etikettenindizierung aus
Der folgende Code zeigt, wie ein Dataframe und pandas Verwendung .loc erstellen, um die Reihe mit einem Index Etikett von 3 auszuwählen:
import pandas as pd
import numpy as np
# Machen Sie dieses Beispiel reproduzierbar
np.random.seed(0)
# Dataframe erstellen
df = pd.DataFrame(np.random.rand(6,2), index=range(0,18,3), columns=['A', 'B'])
# Dataframe anzeigen
df
A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895
#Wählen Sie die Zeile mit der Indexbezeichnung '3' aus.
df.loc[[3]]
A B
3 0.602763 0.544883
Wir können eine ähnliche Syntax verwenden, um mehrere Zeilen mit unterschiedlichen Indexbezeichnungen auszuwählen:
# Wählen Sie die Zeilen mit den Indexbezeichnungen '3', '6' und '9' aus.
df.loc[[3, 6, 9]]
A B
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
Der Unterschied zwischen .iloc und .loc
Die obigen Beispiele veranschaulichen den subtilen Unterschied zwischen .iloc und .loc:
- .iloc wählt Zeilen basierend auf einem Integer-Index aus. Wenn Sie also die 5. Zeile in einem DataFrame auswählen möchten, verwenden Sie df.iloc [[4]], da sich die erste Zeile auf Index 0, die zweite Zeile auf Index 1 usw. befindet.
- .loc wählt Zeilen basierend auf einem beschrifteten Index aus. Wenn Sie also die Zeile mit einer Indexbezeichnung von 5 auswählen möchten, verwenden Sie direkt df.loc [[5]].
Zusätzliche Ressourcen
So finden Sie eindeutige Werte in mehreren Spalten in Pandas
So filtern Sie Pandas DataFrame-Zeilen nach Datum
Oft möchten Sie die Zeilen eines Pandas DataFrame nach Datum filtern. Praktischerweise ist dies ziemlich einfach und in diesem Tutorial werden je nach Struktur Ihres DataFrame zwei Möglichkeiten erläutert.