Ich versuche, eine neue Spalte zu einem vorhandenen Pandas-Datenrahmen mydf
zuweisen. Die hinzuzufügende Reihe ist das Ergebnis der Auswertung eines Ausdrucks, der als String übergeben wird. Der Ausdruck kann Python Funktionsaufrufe zum Beispiel enthalten:Assign in Pandas mit Zeitreihendaten und groupby
formula = 'myfunction(mydf.v1)'
myfunction
wie
def myfunction(series):
return recursive_filter(series, 0.1)
folgt
Der folgende Code den Ausdruck auswertet und auszuführen myfunction
und weisen die Spalte v2
zu mydf
mydf.assign(v2 = eval(formula))
Allerdings muss ich die Funktion von Market
ausführen. Die Ausgabe sollte wie die Tabelle unten aussehen
Market Date v1 v2
UK 2013-01-01 10 10.00
UK 2013-01-02 10 11.00
UK 2013-01-03 10 11.10
UK 2013-01-04 10 11.11
US 2013-01-01 10 10.00
US 2013-01-02 10 11.00
US 2013-01-03 10 11.10
US 2013-01-04 10 11.11
ich den folgenden Code versucht (was ich nicht sicher bin, würde das richtige Ergebnis produzieren ...)
mydf.groupby('CrossSection').apply(mydf.assign(v2 = eval(formula)))
aber dies erzeugt diesen Fehler
TypeError: 'DataFrame' objects are mutable, thus they cannot be hashed