Panda's: filteren op indexwaarde


U kunt de volgende basissyntaxis gebruiken om rijen in een Panda DataFrame te filteren op basis van indexwaarden:

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

Hierdoor wordt het Panda DataFrame gefilterd om alleen rijen op te nemen waarvan de indexwaarden zich in some_list bevinden.

De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld 1: Filter op numerieke indexwaarden

Stel dat we de volgende panda’s DataFrame hebben:

 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

Houd er rekening mee dat indexwaarden numeriek zijn.

Stel dat we rijen willen filteren waarvan de indexwaarde 1, 5, 6 of 7 is.

We kunnen hiervoor de volgende syntaxis gebruiken:

 #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

Houd er rekening mee dat de enige geretourneerde rijen de rijen zijn met een indexwaarde van 1, 5, 6 of 7.

Voorbeeld 2: Filter op niet-numerieke indexwaarden

Stel dat we de volgende panda’s DataFrame hebben:

 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

Houd er rekening mee dat indexwaarden tekenwaarden zijn.

Stel dat we rijen willen filteren waarvan de indexwaarde gelijk is aan A, C, F of G.

We kunnen hiervoor de volgende syntaxis gebruiken:

 #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

Houd er rekening mee dat de enige geretourneerde rijen de rijen zijn met de indexwaarde A, C, F of G.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:

Hoe u een rij invoegt in een Pandas DataFrame
Hoe de eerste rij in Pandas DataFrame te verwijderen
Hoe rijen in Pandas DataFrame te verwijderen op basis van de voorwaarde

Einen Kommentar hinzufügen

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