查找包含pandas中给定日期时间的最近时间的字符串

时间:2017-12-15 15:29:06

标签: python pandas date datetime time

我有一个数据框,其中一列包含时间

myDf=pd.DataFrame(data=['12:53 AM ','1:53 AM '])

等等。 我可以使用以下

解析字符串
myDf['LOCALTIME']=myDf[name_columns_with_time].apply(lambda tt:pd.to_datetime(tt, format='%I:%M %p')).dt.time

获取

myDf['LOCALTIME']
Out[287]: 
0     00:53:00
1     01:53:00
2     02:53:00

但是,这列是dobject作为dtype。

现在我有一个日期时间:

just_a_datetime = datetime.datetime(year=2016, month=8, day=7,hour=1,minute=45,second=1) 

我需要确定哪一行myDF最接近just_a_datetime。 在此示例中:所需结果为1。 我想这样做:

myDf['LOCALTIME'].dt-datetime_of_interest.time()

但是,我收到以下错误:

AttributeError: Can only use .dt accessor with datetimelike values

1 个答案:

答案 0 :(得分:1)

我们可以使用np.searchsorted

np.searchsorted(df.LOCALTIME.dt.time.values, pd.to_datetime(just_a_datetime).time())
Out[323]: 1