不能通过pandas数据框中的时间戳索引

我拿了一个有date和一些值的Excel工作表,并且想把它们转换成pandas数据框,并且只select在特定date之间的行。

出于某种原因,我不能按date索引select一行

原始数据在Excel文件中

MCU Timestamp 50D 10P1 10P2 10P3 10P6 10P9 10P12 12-Feb-15 25.17 5.88 5.92 5.98 6.18 6.23 6.33 11-Feb-15 25.9 6.05 6.09 6.15 6.28 6.31 6.39 10-Feb-15 26.38 5.94 6.05 6.15 6.33 6.39 6.46 

 xls = pd.ExcelFile('e:/Data.xlsx') vols = xls.parse(asset.upper()+'VOL',header=1) vols.set_index('Timestamp',inplace=True) 

set_index之前的数据

  Timestamp 50D 10P1 10P2 10P3 10P6 10P9 10P12 25P1 25P2 \ 0 2015-02-12 25.17 5.88 5.92 5.98 6.18 6.23 6.33 2.98 3.08 1 2015-02-11 25.90 6.05 6.09 6.15 6.28 6.31 6.39 3.12 3.17 2 2015-02-10 26.38 5.94 6.05 6.15 6.33 6.39 6.46 3.01 3.16 

set_index之后的数据

  50D 10P1 10P2 10P3 10P6 10P9 10P12 25P1 25P2 25P3 \ Timestamp 2015-02-12 25.17 5.88 5.92 5.98 6.18 6.23 6.33 2.98 3.08 3.21 2015-02-11 25.90 6.05 6.09 6.15 6.28 6.31 6.39 3.12 3.17 3.32 2015-02-10 26.38 5.94 6.05 6.15 6.33 6.39 6.46 3.01 3.16 3.31 

产量

 >>> vols.index <class 'pandas.tseries.index.DatetimeIndex'> [2015-02-12, ..., NaT] Length: 1478, Freq: None, Timezone: None >>> vols[date(2015,2,12)] *** KeyError: datetime.date(2015, 2, 12) 

我希望这不会失败,我也应该能够select一个date范围。 尝试了这么多的组合,但没有得到它。

使用datetime.date实例尝试检索索引将不起作用,您只需要date的string表示forms,例如'2015-02-12''2015/02/14'

其次, vols[date(2015,2,12)]实际上是查看您的DataFrame的列标题,而不是索引。 您可以使用loc来获取行索引标签。 例如,你可以写vols.loc['2015-02-12']