Anwenden, Funktion pandas dataframe Zeile mit den Werten in anderen Zeilen
Ich habe eine situation wo ich einen dataframe Zeile, um Berechnungen mit, und ich brauche Werte verwenden, die im folgenden (potenziell vorhergehenden) Zeilen um diese Berechnungen zu tun (im Grunde eine perfekte Prognose basiert auf der realen Datensatz). Ich bekomme jede Zeile aus einer früheren df.apply
Anruf, so konnte ich den pass das ganze df entlang der downstream-Objekte, aber das scheint weniger als ideal sind, auf der Grundlage der Komplexität der Objekte in meiner Analyse.
Fand ich eine eng damit verbundene Frage-und-Antwort [1], aber das problem ist eigentlich grundlegend in dem Sinne, dass ich nicht brauchen, das ganze df für meine calcs, einfach das folgende x
Anzahl der Zeilen (die Angelegenheit für große dfs).
So, zum Beispiel:
df = pd.DataFrame([100, 200, 300, 400, 500, 600, 700, 800, 900, 1000],
columns=['PRICE'])
horizon = 3
Ich zugreifen zu können, müssen Sie Werte in die folgenden 3 (horizon
) Zeilen in meiner zeilenweise df.apply
nennen. Wie bekomme ich eine naive Prognose der nächsten 3 Datenpunkte dynamisch in meinem zeilenweise gelten calcs? z.B. für Zeile die erste Zeile, wo der PRICE
ist 100
, ich [200, 300, 400]
eine Prognose in meine calcs.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Indem man die Zeile index innerhalb der
df.apply
Anruf mitrow.name
[1], können Sie erzeugen die 'Prognose' - Daten relativ zu welcher Zeile Sie sich gerade befinden. Dies ist effektiv ein preprocessing-Schritt zu setzen die 'Prognose' auf die entsprechende Zeile, oder es könnte getan werden, als Teil der erstendf.apply
nennen, wenn der df downstream zur Verfügung.Ergebnisse, in:
Die verwendet werden können, in Ihren row-wise
df.apply
calcs.EDIT:
Wenn Sie möchten, Streifen Sie den index aus dem resultierenden 'Prognose':
[1] das bekommen des index einer Zeile in einer pandas gelten-Funktion
Können Sie diese nützlich finden, wie gut.
ordnen Sie die
concat
zudf_c
%%timeit
und Ihr wat ist 5+ - mal schneller. Ich mag meine Art, denn ich finde es mehr elegante. Aber ich würde mit dir gehen Weg, weil seine viel intuitiver und seine schneller.