So wählen sie zeilen nach index in einem pandas dataframe aus
Häufig möchten Sie möglicherweise Zeilen in einem Pandas-DataFrame basierend auf ihrem Indexwert auswählen.
Wenn Sie Zeilen basierend auf der Ganzzahlindizierung auswählen möchten, können Sie die Funktion .iloc verwenden.
Wenn Sie Zeilen basierend auf der Label-Indizierung auswählen möchten, können Sie die Funktion .loc verwenden.
Dieses Tutorial bietet ein Beispiel für die praktische Verwendung jeder dieser Funktionen.
Beispiel 1: Wählen Sie Zeilen basierend auf der Ganzzahlindizierung aus
Der folgende Code zeigt, wie man einen Pandas-DataFrame erstellt und .iloc verwendet, um die Zeile mit einem ganzzahligen Indexwert von 4 auszuwählen:
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #createDataFrame df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B ']) #view DataFrame 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 #select the 5th row of the DataFrame df. iloc [[4]] A B 12 0.963663 0.383442
Wir können eine ähnliche Syntax verwenden, um mehrere Zeilen auszuwählen:
#select the 3rd, 4th, and 5th rows of the DataFrame
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:
#select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [2:5]
A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
Beispiel 2: Zeilen basierend auf der Beschriftungsindizierung auswählen
Der folgende Code zeigt, wie man einen Pandas-DataFrame erstellt und mit .loc die Zeile mit der Indexbezeichnung 3 auswählt:
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #createDataFrame df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B ']) #view DataFrame 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 #select the row with index label '3' 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:
#select the rows with index labels '3', '6', and '9'
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 ganzzahligen Index aus. Wenn Sie also die 5. Zeile eines DataFrame auswählen möchten, würden Sie df.iloc[[4]] verwenden, da die erste Zeile den Index 0 hat, die zweite Zeile den Index 1 und so weiter.
- .loc wählt Zeilen basierend auf einem beschrifteten Index aus. Wenn Sie also die Zeile mit der Indexbezeichnung 5 auswählen möchten, verwenden Sie direkt df.loc[[5]].
Zusätzliche Ressourcen
So erhalten Sie Zeilennummern in einem Pandas DataFrame
So löschen Sie Zeilen mit NaN-Werten in Pandas
So entfernen Sie die Indexspalte in Pandas