2016-12-26 1 views
0

Ich habe die 2 folgenden Datenrahmen:
df1:Python Pandas concatening 2 Zeitreihen Datenrahmen

   datetime actual forecast previous 
0 2015-01-09 13:30:00  -0.2   0.2   0.2 
1 2015-02-06 13:30:00  0.5   0.3  -0.2 
2 2015-03-06 13:30:00  0.1   0.2   0.5 
3 2015-04-03 12:30:00  0.3   0.2   0.1 
4 2015-05-08 12:30:00  0.1   0.2   0.2 

und DF2:

  datetime Actual Surv(M) Prior 
0 2015-01-09 08:30 -0.2% 0.2% 0.4% 
1 2015-02-06 08:30 0.5% 0.3% -0.2% 
2 2015-03-06 08:30 0.1% 0.2% 0.5% 
3 2015-04-03 08:30 0.3% 0.2% 0.1% 
4 2015-05-08 08:30 0.1% 0.2% 0.3% 

Ich versuche, sie zu verketten, so dass sie in einem Datenrahmen erscheinen geordnet nach ihrem Zeitstempel.

Um dies zu tun ich tue:

df1.set_index('datetime', drop=False, inplace=True) 
df2.set_index('datetime', drop=False, inplace=True) 
pd.concat([df1, df2], axis=1) 

Aber das ist das Ergebnis: von DF2 kommenden

        datetime actual forecast previous  datetime Actual Surv(M) Prior 
datetime         
2015-01-09 08:30:00     NaT  NaN  NaN   NaN   NaN NaN   NaN NaN 
2015-01-09 13:30:00 2015-01-09 13:30:00  -0.2  0.2   0.2   NaN NaN   NaN NaN 
2015-02-06 08:30:00     NaT  NaN  NaN   NaN   NaN NaN   NaN NaN 
2015-02-06 13:30:00 2015-02-06 13:30:00  0.5  0.3  -0.2   NaN NaN   NaN NaN 
2015-03-06 08:30:00     NaT  NaN  NaN   NaN   NaN NaN   NaN NaN 
2015-03-06 13:30:00 2015-03-06 13:30:00  0.1  0.2   0.5   NaN NaN   NaN NaN 
2015-04-03 08:30:00     NaT  NaN  NaN   NaN   NaN NaN   NaN NaN 
2015-04-03 12:30:00 2015-04-03 12:30:00  0.3  0.2   0.1   NaN NaN   NaN NaN 
2015-05-08 08:30:00     NaT  NaN  NaN   NaN   NaN NaN   NaN NaN 
2015-05-08 12:30:00 2015-05-08 12:30:00  0.1  0.2   0.2   NaN NaN   NaN NaN 

Die Daten fehlen. Es scheint, dass die Zeilen dafür korrekt zugeordnet sind, indem der Rhythmus in den Daten von df1 berücksichtigt wird, aber es erscheint nicht.

Irgendwelche Vorschläge, um df2-Daten korrekt zu haben?

Edit: das gewünschte Ergebnis:

         datetime actual forecast previous  datetime Actual Surv(M) Prior 
    datetime         
2015-01-09 08:30:00     NaT  NaN  NaN   NaN    2015-01-09 08:30 -0.2% 0.2% 0.4% 
    2015-01-09 13:30:00 2015-01-09 13:30:00  -0.2  0.2   0.2   NaN NaN   NaN NaN 
2015-02-06 08:30:00     NaT  NaN  NaN   NaN   2015-02-06 08:30 0.5% 0.3% -0.2% 
    2015-02-06 13:30:00 2015-02-06 13:30:00  0.5  0.3  -0.2   NaN NaN   NaN NaN 
2015-03-06 08:30:00     NaT  NaN  NaN   NaN   2015-03-06 08:30 0.1% 0.2% 0.5% 
    2015-03-06 13:30:00 2015-03-06 13:30:00  0.1  0.2   0.5   NaN NaN   NaN NaN 
2015-04-03 08:30:00     NaT  NaN  NaN   NaN   2015-04-03 08:30 0.3% 0.2% 0.1% 
    2015-04-03 12:30:00 2015-04-03 12:30:00  0.3  0.2   0.1   NaN NaN   NaN NaN 
2015-05-08 08:30:00     NaT  NaN  NaN   NaN   2015-05-08 08:30 0.1% 0.2% 0.3% 
    2015-05-08 12:30:00 2015-05-08 12:30:00  0.1  0.2   0.2   NaN NaN   NaN NaN 

Es ist wirklich sehr schwierig, diese Tabelle hier zu formatieren ... aber im Grunde hier oben würde die gewünschte Ausgabe sein.

+0

Können Sie Ihren gewünschten DF/Datensatz einstellen? – MaxU

+0

sollte 'pandas.merge' oder' df.join' verwenden – reptilicus

Antwort

0

df1 und df2 haben unterschiedliche Spaltennamen, daher gibt die concat-Funktion nicht direkt das gewünschte Ergebnis. Stattdessen können Sie df2-Spalten ändern und dann die Datenrahmen zusammenführen.

+0

Nein, aber ich möchte, dass die Spalten Unterscheidungen bleiben. Die einzigen Spalten, die zusammengeführt werden sollten, sind der Index mit seinen Datumswerten. –

Verwandte Themen