2016-07-01 13 views
3

Ich habe ein Panel mit dem Items Index Tage.Pandas: Reindex-Panel mit Dataframe Index

<class 'pandas.core.panel.Panel'> 
Dimensions: 1260 (items) x 6 (major_axis) x 6 (minor_axis) 
Items axis: 2011-06-27 00:00:00 to 2016-06-28 00:00:00 
Major_axis axis: BP to XOM 
Minor_axis axis: BP to XOM 

Index:

DatetimeIndex(['2011-06-27', '2011-06-28', '2011-06-29', '2011-06-30', 
       '2011-07-01', '2011-07-05', '2011-07-06', '2011-07-07', 
       '2011-07-08', '2011-07-11', 
       ... 
       '2016-06-15', '2016-06-16', '2016-06-17', '2016-06-20', 
       '2016-06-21', '2016-06-22', '2016-06-23', '2016-06-24', 
       '2016-06-27', '2016-06-28'], 
       dtype='datetime64[ns]', name=u'Date', length=1260, freq=None, tz=None) 

ich einen Datenrahmen mit einem Index von Zeiten im Millisekundenauflösung haben:

DatetimeIndex(['2016-05-18 09:30:00.200000', '2016-05-18 09:30:00.400000', 
       '2016-05-18 09:30:00.600000', '2016-05-18 09:30:00.800000', 
       '2016-05-18 09:30:01',  '2016-05-18 09:30:01.200000', 
       '2016-05-18 09:30:01.400000', '2016-05-18 09:30:01.600000', 
       '2016-05-18 09:30:01.800000', '2016-05-18 09:30:02', 
       ... 
       '2016-05-20 15:59:58.200000', '2016-05-20 15:59:58.400000', 
       '2016-05-20 15:59:58.600000', '2016-05-20 15:59:58.800000', 
       '2016-05-20 15:59:59',  '2016-05-20 15:59:59.200000', 
       '2016-05-20 15:59:59.400000', '2016-05-20 15:59:59.600000', 
       '2016-05-20 15:59:59.800000', '2016-05-20 16:00:00'], 
       dtype='datetime64[ns]', name=u'time', length=351000, freq='200L', tz=None) 

Wenn ich versuche, meine Platte zu indizieren, bekomme ich nur NAN Werte

pnl2 = pnl.reindex(df.index) 

pnl2[0,:,:] 

    BP COP CVX MPC VLO XOM 
BP NaN NaN NaN NaN NaN NaN 
COP NaN NaN NaN NaN NaN NaN 
CVX NaN NaN NaN NaN NaN NaN 
MPC NaN NaN NaN NaN NaN NaN 
VLO NaN NaN NaN NaN NaN NaN 
XOM NaN NaN NaN NaN NaN NaN 

I weiß jedoch, dass die Paneldaten für das passende Datum der meinen Datenrahmen haben:

pnl[datetime.datetime(2016, 5, 18),:,:] 


    BP   COP   CVX   MPC   VLO   XOM 
BP 0.085169 -0.020719 -0.027176 -0.001270 -0.004472 -0.025772 
COP -0.020719 0.064905 -0.043904 -0.012531 0.010451 -0.005583 
CVX -0.027176 -0.043904 0.185100 -0.006396 -0.001374 -0.108513 
MPC -0.001270 -0.012531 -0.006396 0.053583 -0.042791 0.012225 
VLO -0.004472 0.010451 -0.001374 -0.042791 0.059244 -0.015029 
XOM -0.025772 -0.005583 -0.108513 0.012225 -0.015029 0.199892 

Frage:

Was muß ich tun, um meine Platte mit meinem Datenframe-Index richtig indizieren?

+1

es, wenn Sie nur das Datum passieren funktioniert? 'pnl2 = pnl.reindex (df.index.date)' – EdChum

+0

@EdChum warum ja es tut !! Vielen Dank! Wenn Sie das beantworten wollen, nehme ich es gerne an –

Antwort

1

Die Neuindizierung nicht aufgrund der Zeitkomponente, so dass Sie nur die date Komponente Ihres datetimeIndex zugreifen können

pnl2 = pnl.reindex(df.index.date)