2017-12-23 9 views
1

Ich benutze Pandas Datenleser-Paket, um wirtschaftliche Zeitreihe von Website wie Fred, Yahoo Finanzen zu ziehen. Ich habe uns Rezession (USREC) -Serie von der "Fred" -Website und historische Sp500 (^ GSPC) von Yahoo Finance gezogen.Pandas DataReader: normalisieren Daten

Historische US-Rezession:

web.DataReader("USREC", "fred", start, end) 

Ausgang:

2017-08-01  0 
2017-09-01  0 
2017-10-01  0 
2017-11-01  0 

S & P500 kehrt

web.DataReader("^GSPC",'yahoo',start,end)['Close'].to_frame().resample('M').mean().round() 

Ausgang:

2017-08-31 2456.0 
2017-09-30 2493.0 
2017-10-31 2557.0 
2017-11-30 2594.0 

Ich möchte die beiden Datenrahmen zusammenführen, aber einer hat das Anfangsdatum des Monats und der andere hat das Enddatum des Monats. Wie mache ich a) die Datumsspalte yyyy-mm b) entweder die Datumsspalte beider Frames Monatsanfang oder Monatsende?

Danke für die Hilfe!

Antwort

2

können Sie verwenden MS für Resampling nach Beginn der Monate:

web.DataReader("^GSPC",'yahoo',start,end)['Close'].to_frame().resample('MS').mean().round() 

Oder besteht die Möglichkeit, to_period für Monat PeriodIndex:

df1 = df1.to_period('M') 
df2 = df2.to_period('M') 
print (df1) 
     Close 
2017-08  0 
2017-09  0 
2017-10  0 
2017-11  0 

print (df2) 
      Close 
2017-08 2456.0 
2017-09 2493.0 
2017-10 2557.0 
2017-11 2594.0 

print (df1.index) 
PeriodIndex(['2017-08', '2017-09', '2017-10', '2017-11'], dtype='period[M]', freq='M') 

print (df2.index) 
PeriodIndex(['2017-08', '2017-09', '2017-10', '2017-11'], dtype='period[M]', freq='M') 
Verwandte Themen