Ich habe mehrere Datenrahmen mit Aktienkursen, die ich in einem einzigen Datenrahmen ausrichten möchte, der nur die Schlusskurse für alle Aktien enthält.Mehrere, nicht ausgerichtete Datenrahmen in einzelne Pandas-Datenrahmen zusammenfügen
Ich würde erwarten, dass alle Daten aus allen Datenrahmen in der Datumsspalte (Index) und "NA" vorhanden sind, falls es an diesem Datum keinen Schlusskurs für eine Aktie gab.
Beispiel mit zwei Datenrahmen (DF1 und DF2):
In [5]: df1
Out[5]:
Open High Low Close
Date1
2012-01-05 22.00 22.66 23.11 24.04
2012-01-04 24.04 23.80 23.08 22.16
2012-01-03 22.16 21.27 20.42 21.24
2012-01-01 21.24 22.30 22.52 22.30
In [7]: df2
Out[7]:
Open High Low Close
Date1
2012-01-07 23.00 21.66 25.11 21.04
2012-01-06 22.00 22.66 23.11 24.04
2012-01-04 24.04 23.80 23.08 22.16
2012-01-02 22.16 21.27 20.42 21.24
2012-01-01 21.24 22.30 22.52 22.30
Jetzt kann ich
In [8]: frame=pd.DataFrame({"df1.Close":df1["Close"], "df2.Close":df2["Close"]})
und das Ergebnis zu tun ist, wie erwartet:
In [9]: frame
Out[9]:
df1.Close df2.Close
Date1
2012-01-01 22.30 22.30
2012-01-02 NaN 21.24
2012-01-03 21.24 NaN
2012-01-04 22.16 22.16
2012-01-05 24.04 NaN
2012-01-06 NaN 24.04
2012-01-07 NaN 21.04
Wie würden Ich muss meinen Code ändern, um das gleiche für eine dynamische Anzahl von Datenrahmen zu tun? Im Moment habe ich 8 Daten-Frames, die ich auf diese Weise ausrichten muss. Gibt es eine Möglichkeit, eine Liste von Datenrahmen zu durchlaufen und sie wie oben ausgerichtet auszurichten - anstatt die Datenrahmennamen (etwas wie df [0] bis df [7] im übertragenen Sinne manuell zu binden)?
Vielen Dank im Voraus und freundliche Grüße! Dirk
Sehr cool, vielen Dank! Mit diesem Beispiel bin ich auf halbem Weg. Nun, wie würde ich diese "dflist" dynamisch machen? Ich werde nicht im Voraus wissen, wie viele Datenframes ich brauche - also suche ich nach einer Möglichkeit, eine Anzahl von Datenrahmen dynamisch zu erstellen und dann Ihren Code zu verwenden. Vielen Dank für deine Hilfe! – user1653205
Verwenden Sie einfach die üblichen Methoden zur Listenbearbeitung wie 'append()'. Wenn Sie zum Beispiel einen neuen Datenrahmen haben, machen Sie etwas wie 'dflist.append (new_df)'. – rmunn
Ich glaube ich komme näher. Ich habe jetzt die Datenframes in ein Diktat geladen, wo der Schlüssel der Ticker der Aktie ist und der Wert der Datenrahmen mit OHLC-Quotierungen für die Aktie ist. Jetzt habe ich ein Diktat mit 8 Schlüssel/Wert-Paaren. Die verbleibende Frage ist: Wie schließe ich die Datenrahmen zu einem durch die Wiederholung durch mein Diktat? – user1653205