Pandas: so filtern sie nach indexwert


Sie können die folgende grundlegende Syntax verwenden, um Zeilen in einem Pandas-DataFrame basierend auf Indexwerten zu filtern:

 df_filtered = df[df. index . isin (some_list)]

Dadurch wird der Pandas-DataFrame so gefiltert, dass er nur Zeilen enthält, deren Indexwerte in some_list enthalten sind.

Die folgenden Beispiele zeigen, wie Sie diese Syntax in der Praxis anwenden können.

Beispiel 1: Nach numerischen Indexwerten filtern

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

   points assists rebounds
0 18 5 11
1 22 7 8
2 19 7 10
3 14 9 6
4 14 12 6
5 11 9 5
6 20 9 9
7 28 4 12

Beachten Sie, dass Indexwerte numerisch sind.

Angenommen, wir möchten Zeilen filtern, deren Indexwert 1, 5, 6 oder 7 ist.

Wir können dazu die folgende Syntax verwenden:

 #define list of index values
some_list = [1, 5, 6, 7]

#filter for rows in list
df_filtered = df[df. index . isin (some_list)]

#view filtered DataFrame
print (df_filtered)

   points assists rebounds
1 22 7 8
5 11 9 5
6 20 9 9
7 28 4 12

Beachten Sie, dass nur Zeilen mit einem Indexwert von 1, 5, 6 oder 7 zurückgegeben werden.

Beispiel 2: Filtern nach nicht numerischen Indexwerten

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]},
                   index=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'])

#view DataFrame
print (df)

   points assists rebounds
A 18 5 11
B 22 7 8
C 19 7 10
D 14 9 6
E 14 12 6
F 11 9 5
G 20 9 9
H 28 4 12

Beachten Sie, dass Indexwerte Zeichenwerte sind.

Angenommen, wir möchten Zeilen filtern, deren Indexwert gleich A, C, F oder G ist.

Wir können dazu die folgende Syntax verwenden:

 #define list of index values
some_list = ['A', 'C', 'F', 'G']

#filter for rows in list
df_filtered = df[df. index . isin (some_list)]

#view filtered DataFrame
print (df_filtered)

   points assists rebounds
A 18 5 11
C 19 7 10
F 11 9 5
G 20 9 9

Beachten Sie, dass nur Zeilen mit einem Indexwert von A, C, F oder G zurückgegeben werden.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:

So fügen Sie eine Zeile in einen Pandas DataFrame ein
So entfernen Sie die erste Zeile in Pandas DataFrame
So löschen Sie Zeilen in Pandas DataFrame basierend auf der Bedingung

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert