Ist es möglich, mit pandas DataFrame wie mit einer Excel-Tabelle zu arbeiten: indem Sie beispielsweise eine Formel in eine Spalte eingeben, so dass sich die Werte in dieser Spalte automatisch ändern, wenn sich Variablen in anderen Spalten ändern? Etwas wie:
%Vor% Und wenn ich 2 oder 3 aktualisiere, wird auch die Spalte c
automatisch aktualisiert.
PS: Es ist natürlich möglich, eine Funktion zu schreiben, die a+b
zurückgibt, aber gibt es in Pandas oder in anderen Python-Bibliotheken eingebaute Funktionen, um auf diese Weise mit Matrizen zu arbeiten?
Dies funktioniert in 0.13 (noch in Entwicklung)
%Vor% Dies ist möglich als 'a + b'
(bald)
Sie könnten einen Hook in stitem im Datenrahmen implementieren, damit diese Art von Funktion automatisch aufgerufen wird. Aber ziemlich schwierig. Sie haben nicht spezifiziert, wie der Rahmen an erster Stelle aktualisiert wird. Am einfachsten wäre es wahrscheinlich, die Aktualisierungsfunktion einfach aufzurufen, nachdem Sie die Werte geändert haben
Ich weiß nicht, dass es das ist, was Sie wollen, aber ich habe zufällig entdeckt, dass Sie xlwt.Formula-Objekte in den DataFrame-Zellen speichern können und dann mit der DataFrame.to_excel-Methode den DataFrame exportieren, um Excel zu erstellen und Ihre Formeln zu haben drin:
%Vor%Probieren Sie es aus ...
Es gibt derzeit keine Möglichkeit, dies genau so zu tun, wie Sie es beschreiben.
In Pandas 0.13 gibt es eine neue Methode DataFrame.eval
, mit der Sie einen Ausdruck im "Kontext" eines DataFrame
auswerten können. Zum Beispiel können Sie df['c'] = df.eval('a + b')
.