2017-11-02 2 views
0

Ich habe Probleme mit der Zeit in Pandas interpolieren, so habe ich es zurück zu einem sehr grundlegenden Beispiel genommen und sehe immer noch das gleiche Problem.Pandas Zeit Interpolation - NaNs

c ist der Datenrahmen, der Index a ist (a datetime64 Array) ist und b die Daten (a float Array)

In [104]: c 
Out[104]: 
       b 
a      
2009-04-01 386.928680 
2009-06-01 386.502686 

In [105]: a 
Out[105]: 
0 2009-04-01 
1 2009-06-01 
dtype: datetime64[ns] 

In [106]: b 
Out[106]: 
0 386.928680 
1 386.502686 
dtype: float64 

upsampled = c.resample('M') 
interpolated = upsampled.interpolate(method='linear') 

In [107]: interpolated 
Out[107]: 
     b 
a    
2009-04-30 NaN 
2009-05-31 NaN 
2009-06-30 NaN 

habe ich versucht, die Interpolationsmethode zu ändern und die Grenze Schlüsselwort Einstellung aber nichts scheint zu helfen und ich bekomme einfach alle NaNs.

Antwort

3

Sie müssen Ihre Resample in 'MS' Monat starten, um die ursprünglichen Werte zu erhalten.

c.resample('MS').asfreq().interpolate(method='linear') 

Ausgang:

     b 
a      
2009-04-01 386.928680 
2009-05-01 386.715683 
2009-06-01 386.502686 
Verwandte Themen