So filtern Sie Pandas-Datenrahmen mit „in“ und „nicht in“ wie in SQL

Sie können eine Pandas DataFrame mit den Methoden isin() und ~(not in) filtern.

Hier ist ein Beispiel, wie man eine DataFrame für Zeilen filtert, in denen eine Spalte einen Wert hat, der in einer Liste enthalten ist:

import pandas as pd

# Erstellen Sie eine Beispiel-DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# Erstellen Sie eine Liste der zu filternden Werte
values_to_filter = [2, 3]

# Verwenden Sie die isin() Methode, um die DataFrame zu filtern
filtered_df = df[df['A'].isin(values_to_filter)]

print(filtered_df)

Das wird folgendes ausgeben:

A  B
1  2  5
2  3  6

Hier ist ein Beispiel, wie man eine DataFrame für Zeilen filtert, in denen eine Spalte einen Wert hat, der nicht in einer Liste enthalten ist:

import pandas as pd

# Erstellen Sie eine Beispiel-DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# Erstellen Sie eine Liste der zu filternden Werte
values_to_filter = [2, 3]

# Verwenden Sie den ~ (not in) Operator zusammen mit der isin() Methode, um die DataFrame zu filtern
filtered_df = df[~df['A'].isin(values_to_filter)]

print(filtered_df)

Das wird folgendes ausgeben:

A  B
0  1  4

Man kann auch mehrere Bedingungen mit & für und und | für oder verwenden.

# Erstellen Sie eine Beispiel-DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C':[7,8,9]})

# Erstellen Sie eine Liste der zu filternden Werte
values_to_filter = [2, 3]

# Verwenden Sie den ~ (not in) Operator zusammen mit der isin() Methode, um die DataFrame zu filtern
filtered_df = df[(df['A'].isin(values_to_filter)) & (df['C']>8)]

print(filtered_df)

Das wird folgendes ausgeben:

A  B  C
2  3  6  9