2016-07-01 6 views
3

У меня есть панель с индексом Items, являющимся днями.pandas: панель reindex с индексом dataframe

<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 

индекс:

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) 

У меня есть dataframe с индексом раз в резолюции миллисекунды:

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) 

При попытке проиндексировать мою панель, я просто NAN ценности

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 Однако известно, что панель имеет данные для Дейта сопоставления моего dataframe:

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 

Вопрос:

Что мне нужно сделать, чтобы правильно переиндексации моей панели с индексом моего dataframe в?

+1

это работает, если вы передаете только дату? 'pnl2 = pnl.reindex (df.index.date)' – EdChum

+0

@EdChum, почему да! Спасибо! Если вы хотите ответить на этот вопрос, я с радостью соглашусь с ним –

ответ

1

переиндексация не удается из-компоненты времени, так что вы можете получить доступ только date компонента вашего datetimeIndex

pnl2 = pnl.reindex(df.index.date) 
Смежные вопросы