我在一个 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()))
1条答案
按热度按时间bfnvny8b1#
使用pd.merge_asof和direction ='forward'参数计算出来。