Dynamisches Auswerten von Ausdrücken aus Formeln in Pandas
Herausforderung
Bewerten Sie arithmetische Ausdrücke mit pd.eval für eine oder mehrere DataFrame-Spalten, wie im gezeigt Folgendes Beispiel:
pd.eval-Funktionen
pd.eval, df.eval und df.query sind drei eng verwandte Funktionen zur Auswertung von Ausdrücken in Pandas. Jede hat ihre eigenen subtilen Variationen, aber alle folgen ähnlichen Syntaxregeln und Funktionsunterstützung.
Unterstützte Funktionen:
- Arithmetische Operationen
- Vergleichsoperationen
- Boolesche Operationen
- Listen- und Tupelliterale
- Attributzugriff
- Tiefgestellte Ausdrücke
- Einfache Variablenauswertung
Syntaxregeln:
Ausdrücke müssen als Zeichenfolgen übergeben werden, wobei die folgenden Richtlinien gelten:
- Der gesamte Ausdruck ist eine Zeichenfolge
- Variablen im globalen Namespace werden durch ihre Namen referenziert
- Bestimmte Spalten werden über den Attribut-Accessor aufgerufen
- Klammern können verwendet werden, um die Operatorpriorität zu überschreiben
Hauptunterschiede
pd.eval vs. df.eval
-
Spaltenzugriff: pd.eval erfordert Spaltennamen mit DataFrame-Indizierung, während df.eval den direkten Zugriff auf die Spalte ermöglicht Namen.
-
Ausdrücke mit DataFrames: pd.eval eignet sich besser für datenrahmenweite Vorgänge, während df.eval mit bestimmten DataFrames arbeitet.
df.eval vs. df.query
-
Abfragen vs. Auswertung: df.query wertet bedingte Ausdrücke aus und gibt passende Zeilen zurück. df.eval gibt das Ergebnis des Ausdrucks selbst zurück.
-
Komfort: df.query ist im Allgemeinen für Abfragezwecke prägnanter.
Lösung
Um die ursprüngliche Herausforderung mit pd.eval zu lösen:
Neuzuweisung
Um das Ergebnis des Ausdrucks wieder df2 zuzuweisen, verwenden Sie den Zielparameter:
Argumente innerhalb des Ausdrucks übergeben
Um x als Argument innerhalb der Ausdruckszeichenfolge zu übergeben, verwenden Sie das @-Symbol:
Das obige ist der detaillierte Inhalt vonWie wertet man arithmetische Ausdrücke in Pandas mit „pd.eval' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!