【发布时间】:2016-02-27 03:55:55
【问题描述】:
给定以下示例 Pandas DataFrame x:
a b
2014-08-07 0.1 2.0
2014-08-18 0.2 4.0
2014-12-16 0.3 0.0
2015-01-16 0.4 2.3
2015-02-16 0.5 2.1
2015-03-18 0.6 7.0
索引的类型为datetime.date。
我想编写一个函数,它接受datetime.datetime 类型的参数start,这样它就可以为我提供小于start 的最大索引。
例如,对于start = datetime.datetime(2015, 1, 20, 17, 30),小于start 的最大索引是2015-01-16。
这将为我提供a 和b 的最新更改,即x.loc[dt(2015,1,16)]。
【问题讨论】:
-
由于某种原因
np.searchsorted不起作用,但这样做:df.index[df.index < start][-1] -
如果你可以按时间对项目进行排序,你可以使用二分搜索/二分法在 log(n) 时间内找到它。
标签: python datetime pandas indexing dataframe