我有两个数据帧,df1和df2,df1有三列—group、startdate1和enddate1,df2还有三列,group、startdate2和enddate2。我想比较df1中每个组的间隔(startdate1,enddate1)是否与同一组的任何间隔(startdate2,enddate2)重叠
我发现了这个帖子(Is it possible to use Pandas Overlap in a Dataframe?),它使用pandas.IntervalIndex.overlaps检查间隔重叠。这与我的问题非常相似,但我正在努力研究如何将groupby用于pandas.IntervalIndex.overlaps(或者我应该使用其他方法)?以下是一些示例数据:
df1:
df2:
如果同一组的df2有任何间隔重叠,则预期输出是在df1中添加一列1或0。 df_输出:
谢谢大家!
您可以在组内进行笛卡尔连接,查找
df1
中按日期范围与df2
重叠的记录索引,然后通过检查记录索引是否在该列表中添加标志:输出:
另外,我假设所有日期都已经是
datetime
格式,否则我们需要先pd.to_datetime(...)
这些列相关问题 更多 >
编程相关推荐