Oft möchten Sie einen Pandas DataFrame nach mehr als einer Bedingung filtern. Glücklicherweise ist dies mit booleschen Operationen einfach zu bewerkstelligen.

Dieses Tutorial enthält mehrere Beispiele zum Filtern der folgenden Pandas DataFrame unter verschiedenen Bedingungen:

import pandas as pd

#Dataframe erstellen
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'C'],
                   'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#Dataframe anzeigen 
df

        team    points  assists rebounds
0   A   25  5   11
1   A   12  7   8
2   B   15  7   10
3   B   14  9   6
4   C   19  12  6

Beispiel 1: Filtern unter mehreren Bedingungen mit 'And'

Der folgende Code veranschaulicht das Filtern des DataFrame mit dem Operator und (&):

# Nur Zeilen zurückgeben, bei denen die Punkte größer als 13 und die Vorlagen größer als 7 sind
df[(df.points > 13) & (df.assists > 7)]

        team    points  assists rebounds
3   B   14  9   6
4   C   19  12  6

# Nur Zeilen zurückgeben, in denen das Team 'A' ist und die Punkte größer oder gleich 15 sind
df[(df.team == 'A') & (df.points >= 15)]


        team    points  assists rebounds
0   A   25  5   11

Beispiel 2: Filtern unter mehreren Bedingungen mit 'Or'

Der folgende Code veranschaulicht das Filtern des DataFrame mit dem Operator or (|):

# Nur Zeilen zurückgeben, in denen Punkte größer als 13 oder Assists größer als 7 sind
df[(df.points > 13) | (df.assists > 7)]


        team    points  assists rebounds
0   A   25  5   11
2   B   15  7   10
3   B   14  9   6
4   C   19  12  6

# Nur Zeilen zurückgeben, in denen das Team 'A' ist oder die Punkte größer oder gleich 15 sind
df[(df.team == 'A') | (df.points >= 15)]

        team    points  assists rebounds
0   A   25  5   11
1   A   12  7   8
2   B   15  7   10
4   C   19  12  6

Beispiel 3: Filtern nach mehreren Bedingungen mithilfe einer Liste

Der folgende Code veranschaulicht das Filtern des DataFrame, in dem sich die Zeilenwerte in einer Liste befinden.

# Definieren Sie eine Liste von Werten
filter_list = [12, 14, 15]

# Nur Zeilen zurückgeben, in denen Punkte in der Werteliste enthalten sind
#return only rows where points is in the list of values
df[df.points.isin(filter_list)]

    team    points  assists rebounds
1   A   12  7   8
2   B   15  7   10
3   B   14  9   6

#definieren Sie eine andere Liste von Werten
filter_list2 = ['A', 'C']

# Nur Zeilen zurückgeben, in denen sich das Team in der Werteliste befindet
df[df.team.isin(filter_list2)]


        team    points  assists rebounds
0   A   25  5   11
1   A   12  7   8
4   C   19  12  6

Weitere Pandas-Tutorials finden Sie hier.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: