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