Spalten erzeugen und Werte hinzufügen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
TheTrader
User
Beiträge: 1
Registriert: Dienstag 20. Juli 2021, 13:45

Hallo, ich beschäftige mich seit ungefähr 5 Monaten mit Python und hatte vorher noch keinen Kontakt zum programmieren ...

Ich hoffe, Ihr könnt mir helfen :) Und ich hoffe, ich bekomme es einigermaßen gut erklärt :)

Ich habe mir eine kleine Matrix in Excel gebaut und möchte auf die selben Ergebnisse gekommen.

Das klappt auch sehr gut und ich kann alle Werte berechnen. Was ich berechnen möchte, schreibe ich etwas tiefer noch genauer.
Was ich aber nicht schaffe, ist diese berechneten Werte in neue Spalten einzusortieren. Habe da letzten Nacht sehr lange versucht und getestet, vergeblich.

Das heisst konkret ...
So würde die Berechnung der ersten Spalte aussehen ( shift 1 ) ... "price0" --> 685 - 719 = -34 ; 652,5 - 685 = -32,5 ; 658,25 - 658,25 = 0; usw...
Bei der zweiten Spalte würde ich folgendes berechnen ( shift 2 )... "price0" --> 652,5-719 = -66,5 ; 658,25 - 685 = -26,75 ; 652,5 - 658,25 = 5,75 ; usw.. Bei der dritten Spalte, springe ich mit shift 3 vor, usw ...

Wenn er mit dem ersten Lauf von i fertig ist, sollte er 17 Werte eingesammelt haben und diese in eine neue Spalte schreiben.
Beim nächsten Lauf von i sollte er 16 Werte eingesammelt haben und diese sollen wieder in eine neue Spalte geschrieben werden usw.

...

Code: Alles auswählen

l = len(df["price0"])
maxTage = 8
Tage_Profit_X = []
sammeln = 0
i = 0
einsammeln = []

while i < l:                      			# läuft jede Zeile durch

    for j in range(maxTage):         # geht mit j jede Spalte der Var maxTage durch
        myShift = j + 1              	# Erhöhung von myShift immer um 1
        sammeln = 0
        if i - j > 0:                 
            f = float (df["price0"].shift(myShift)[i])
            g = float (df["price0"][i])
            sammeln = g - f

## Code läuft bis hier richtig ####

### Und jetzt kommt mein Problem ###

### Ich möchte pro Lauf von i, eine neue Spalte erzeugen, der die eingesammelten Werte beinhaltet ###
### in diesem Fall soll i total 8x durchlaufen und dementsprechend spalten erzeugen ###


        # for i in range(maxTage):
        #     einsammeln = (sammeln)
        #     Tage_Profit_X.append(einsammeln)
        #     print(Tage_Profit_X)
        #     sammeln = 0
        #

        print("i:", str(i), "j:", str(j),"sammeln:", str(sammeln))

    i = i + 1

Hier meine Matrix ...

https://ibb.co/1R1G1Ph


Vielen Dank vorab
Dan
Antworten