So wählen Sie Daten aus einem DataFrame basierend auf Spaltenwerten aus
In SQL würde eine typische Abfrage zum Auswählen von Zeilen basierend auf Spaltenwerten aussehen wie:
SELECT * FROM table WHERE column_name = some_value
Um das gleiche Ergebnis bei Pandas zu erzielen, gibt es mehrere Ansätze:
Exakte Werteübereinstimmung
Um Zeilen auszuwählen, in denen der Spaltenwert einem bestimmten Wert (some_value) entspricht, verwenden Sie den ==-Operator in .loc:
df.loc[df['column_name'] == some_value]
Werteinschluss und -ausschluss
Zum Auswählen von Zeilen, in denen sich die Spalte befindet Wenn der Wert in einer Liste (some_values) enthalten ist, verwenden Sie die Funktion isin:
df.loc[df['column_name'].isin(some_values)]
Um bestimmte Werte auszuschließen, negieren Sie die von isin zurückgegebene boolesche Reihe:
df = df.loc[~df['column_name'].isin(some_values)] # Note: This is not an in-place operation
Combining Bedingungen
Mehrere Bedingungen können mit logischen Operatoren wie & (AND) und | kombiniert werden (OR):
df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
Beachten Sie, dass Klammern erforderlich sind, um die korrekte Operatorpriorität sicherzustellen.
Beispiel
Bedenken Sie den 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})
Zum Auswählen von Zeilen, in denen „A“ gleich ist 'foo':
print(df.loc[df['A'] == 'foo'])
Ergebnisse:
A B C D 0 foo one 0 0 2 foo two 2 4 4 foo two 4 8 6 foo one 6 12 7 foo three 7 14
Optimierung für die Auswahl mehrerer Werte
Für die Auswahl von Zeilen basierend auf mehreren Werten ist es effizienter, einen Index zu erstellen und .loc mit df.index.isin zu verwenden. Dadurch werden mehrere Aufrufe von isin vermieden, was zu einer verbesserten Leistung führt.
df = df.set_index(['B']) print(df.loc[df.index.isin(['one','two'])])
Erträge:
A C D B one foo 0 0 one bar 1 2 one foo 6 12 two foo 2 4 two foo 4 8 two bar 5 10
Das obige ist der detaillierte Inhalt vonWie wählt man effizient Daten aus einem Pandas-DataFrame basierend auf Spaltenwerten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!