2016-10-20 3 views
0

Ich ziehe Daten über Wechselkurse mit Pandas. Die Daten haben keine Werte für jeden einzelnen Tag. Ich möchte die fehlende Zeitreihe mit Pandasinteroplate Funktion ausfüllen, so dass alle Daten in den Index aufgenommen werden. Zum Beispiel, 2010-01-09 und 2010-01-10 fehlen beide. Die interoplate Funktion scheint nichts zu tun, aber ich kann nicht herausfinden, warum.Linear interpolierende Pandas Zeitreihe

from pandas_datareader import data 

can = data.get_data_fred('DEXCAUS') 
can = can.interpolate(method='linear') 
can = can.dropna() 
print can.head(10) 

Ausgang:

  DEXCAUS 
DATE    
2010-01-04 1.0377 
2010-01-05 1.0371 
2010-01-06 1.0333 
2010-01-07 1.0351 
2010-01-08 1.0345 
2010-01-11 1.0317 
2010-01-12 1.0374 
2010-01-13 1.0319 
2010-01-14 1.0260 
2010-01-15 1.0287 

gewünschte Ausgabe:

  DEXCAUS 
DATE    
2010-01-04 1.0377 
2010-01-05 1.0371 
2010-01-06 1.0333 
2010-01-07 1.0351 
2010-01-08 1.0345 
2010-01-09 some value.. 
2010-01-10 some value.. 
2010-01-11 1.0317 
2010-01-12 1.0374 
2010-01-13 1.0319 
2010-01-14 1.0260 
2010-01-15 1.0287 

Antwort

2

Sie müssen sich zuerst sampeln:

df.resample('D').interpolate(method='linear') 
Out: 
      DEXCAUS 
DATE     
2010-01-04 1.037700 
2010-01-05 1.037100 
2010-01-06 1.033300 
2010-01-07 1.035100 
2010-01-08 1.034500 
2010-01-09 1.033567 
2010-01-10 1.032633 
2010-01-11 1.031700 
2010-01-12 1.037400 
2010-01-13 1.031900 
2010-01-14 1.026000 
2010-01-15 1.028700 
Verwandte Themen