pandas 列表中的最小日期晚于另一个列表中的日期

yrefmtwq  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(104)

我在一个 Dataframe 中有两组日期:startdate和enddate
对于每个startdate,我希望找到大于startdate的最小enddate。
我的最小示例代码如下,但它非常慢,每次运行需要20秒。注意,在我的示例中,日期范围是相同的,所以“移位”在这里是可能的,但在我的真实的数据中不是。
有什么办法可以加速编码吗?

import pandas as pd
dates = pd.DataFrame({'startdate':pd.date_range(start='2000-11-03', end='2021-10-01'),'enddate':pd.date_range(start='2000-11-03', end='2021-10-01')})
dates['mindate_after_startdate']=dates['startdate'].apply(lambda x: min(dates['enddate'][dates['enddate']>x],default=datetime.today().date()))
bfnvny8b

bfnvny8b1#

使用pd.merge_asof和direction ='forward'参数计算出来。

相关问题