pandas:带有数据框索引的reindex面板

时间:2016-07-01 15:11:59

标签: python pandas

我有一个Items索引为天的小组。

<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)

我有一个数据帧,其中包含以毫秒分辨率为单位的索引:

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

但是,我知道该小组的日期数据与我的数据框匹配:

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

问题:

为了正确地使用我的数据框索引重新索引我的面板,我需要做什么?

1 个答案:

答案 0 :(得分:1)

重新索引由于时间组件而失败,因此您只能访问datetimeIndex的date组件

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