Wie bei jeder relationalen Datenbank müssen Sie möglicherweise bestimmte Zeilen aus einem DataFrame basierend auf den Werten in einer bestimmten Spalte auswählen. Um dies in Pandas nahtlos zu erreichen, stehen Ihnen mehrere Methoden zur Verfügung.
Um Zeilen abzurufen, deren Spaltenwerte mit einem bestimmten Wert übereinstimmen, nutzen Sie den ==-Operator:
df.loc[df['column_name'] == some_value]
Wenn Sie umgekehrt Zeilen auswählen möchten, deren Spaltenwerte zu einer Sammlung von Werten gehören, verwenden Sie isin:
df.loc[df['column_name'].isin(some_values)]
Um mehrere Bedingungen in Ihrer Auswahl zu kombinieren, verbinden Sie sie mit &:
df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
Hinweis: Klammern sind hier entscheidend, um eine ordnungsgemäße Auswertung sicherzustellen.
Um Zeilen mit bestimmten Spaltenwerten auszuschließen, verwenden Sie !=:
df.loc[df['column_name'] != some_value]
Alternativ können Sie für Werte außerhalb eines bestimmten Bereichs das isin-Ergebnis mit ~:
df = df.loc[~df['column_name'].isin(some_values)] # .loc is not in-place replacement
Bedenken Sie Folgendes DataFrame:
import pandas as pd import numpy as np df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 'B': 'one one two three two two one three'.split(), 'C': np.arange(8), 'D': np.arange(8) * 2}) print(df)
Zeilen mit „A“-Wert „foo“ auswählen:
print(df.loc[df['A'] == 'foo'])
Zeilen mit „B“-Werten „eins“ oder „drei“ auswählen:
print(df.loc[df['B'].isin(['one','three'])])
Für häufige Filtervorgänge ist es effizienter, einen Index zu erstellen zuerst:
df = df.set_index(['B']) print(df.loc['one'])
Alternativ verwenden Sie df.index.isin:
df.loc[df.index.isin(['one','two'])]
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in einem Pandas-DataFrame basierend auf Spaltenwerten effizient auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!