Heim >Backend-Entwicklung >Python-Tutorial >Wie werte ich Ausdrücke aus Formeln in Pandas mithilfe von pd.eval dynamisch aus?
Dynamische Auswertung eines Ausdrucks aus einer Formel in Pandas
Die Auswertung arithmetischer Ausdrücke auf einer oder mehreren Datenrahmenspalten mithilfe von pd.eval ist eine häufige Aufgabe, insbesondere bei der Automatisierung Arbeitsabläufe. Betrachten Sie den folgenden Codeausschnitt:
`x = 5
df2['D'] = df1['A'] (df1['B'] * x)``
Dieser Code fügt df2 eine neue Spalte D hinzu, indem er eine Operation an den Spalten A und B von df1 ausführt und das Ergebnis mit einer Variablen x multipliziert. Das Ziel besteht darin, diese Datenmanipulation dynamisch zu wiederholen und dabei die Fähigkeit von pd.eval zu nutzen, Ausdrücke als Zeichenfolgen auszuführen.
Zuerst stellen wir die Eingabe-DataFrames vor:
import pandas as pd import numpy as np np.random.seed(0) df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD')) df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD')) df1 A B C D 0 5 0 3 3 1 7 9 3 5 2 2 4 7 6 3 8 8 1 6 4 7 7 8 1 df2 A B C D 0 5 9 8 9 1 4 3 0 3 2 5 0 2 3 3 8 1 3 3 4 3 7 0 1
Um den Ausdruck dynamisch auszuwerten pd.eval, man kann den folgenden Code verwenden:
result = pd.eval('df1.A (df1.B * x)')
Diese Codezeile erstellt einen neuen DataFrame namens result, der den ausgewerteten Ausdruck enthält. Die eval-Funktion kann auch verwendet werden, um bedingte Auswertungen durchzuführen, wie zum Beispiel:
pd.eval('df1.A > df2.A')
Um das Ergebnis des Ausdrucks zurück zuzuordnen für df2 verwenden Sie die folgende Syntax:
df2['D'] = pd.eval('df1.A (df1.B * x)', target=df2)
Um ein Argument innerhalb der Ausdruckszeichenfolge zu übergeben, verwenden Sie das @-Symbol:
pd.eval('df1.A (df1. B * @x)', local_dict={'x': 5})
Bedenken Sie für maximale Leistung Folgendes Argumente:
parser='python' zur Steuerung der Syntaxregeln und zur Sicherstellung der Konsistenz mit der Operatorpriorität von Python.
engine='numexpr' für eine schnellere Auswertung mit dem optimierten Numexpr-Backend.
Dies sollte Ihnen helfen mit einem umfassenden Verständnis dafür, wie Ausdrücke aus Formeln in Pandas mithilfe von pd.eval dynamisch ausgewertet werden.
Das obige ist der detaillierte Inhalt vonWie werte ich Ausdrücke aus Formeln in Pandas mithilfe von pd.eval dynamisch aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!