Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python datetime查找给定日期之前最近的日期。如果没有';如果不存在,请获取最近的日期_Python_Pandas_Numpy_Datetime - Fatal编程技术网

Python datetime查找给定日期之前最近的日期。如果没有';如果不存在,请获取最近的日期

Python datetime查找给定日期之前最近的日期。如果没有';如果不存在,请获取最近的日期,python,pandas,numpy,datetime,Python,Pandas,Numpy,Datetime,我有不同的交易组,每个交易组中都有不同的日期。我想得到给定日期之前最近的日期。但是,如果它不存在,只需获取最近的日期即可。比如说, 假设以下两个示例的给定日期为: np.日期时间(2014,12,16) 示例1: 集团内的日期为:np.datetime(2014,12,17),np.datetime(2014,12,15),以及np.datetime(2014,12,14) 返回值应为np.datetime(2014,12,15),因为它是上述给定日期之前最近的日期。我们不仅优先选择给定日期之前

我有不同的交易组,每个交易组中都有不同的日期。我想得到给定日期之前最近的日期。但是,如果它不存在,只需获取最近的日期即可。比如说,

假设以下两个示例的给定日期为:
np.日期时间(2014,12,16)

示例1

集团内的日期为:
np.datetime(2014,12,17)
np.datetime(2014,12,15)
,以及
np.datetime(2014,12,14)

返回值应为
np.datetime(2014,12,15)
,因为它是上述给定日期之前最近的日期。我们不仅优先选择给定日期之前的日期,而且优先选择最接近该日期的日期

示例2

集团内的日期为:
np.datetime(2014,12,17)
np.datetime(2014,12,18)
,以及
np.datetime(2014,12,19)

返回的值应该是
np.datetime(2014,12,17)
,因为给定日期之前没有日期,所以将转换距离上述日期最近的日期

我发现一个函数看起来可以满足第二个示例,但不能满足第一个示例:

def最近(项目、轴):
返回最小值(项目,键=λx:abs(x-轴))


任何帮助都将不胜感激,谢谢

检查
searchsorted

def yourfunc(items,pivot):
    items=np.sort(items)
    if np.searchsorted(items,s)==0:
        return items[np.searchsorted(items,s)]
    else :
        return items[np.searchsorted(items, s)-1]

yourfunc(ary1,s)
Out[148]: datetime.datetime(2014, 12, 15, 0, 0)
yourfunc(ary2,s)
Out[149]: datetime.datetime(2014, 12, 17, 0, 0)
数据输入

ary1=np.array([pd.datetime(2014,12,17), pd.datetime(2014,12,15), pd.datetime(2014,12,14)])
ary2=np.array([pd.datetime(2014,12,17), pd.datetime(2014,12,18), pd.datetime(2014,12,19)]


s=pd.datetime(2014,12,16)