【发布时间】:2017-05-17 21:44:12
【问题描述】:
我必须确定日期集之间是否存在间隔(由开始日期和结束日期决定)。我有两个示例数据框:
import pandas as pd
a = pd.DataFrame({'start_date' : ['01-01-2014', '01-01-2015', '05-01-2016'],
'end_date' : ['01-01-2015', '01-01-2016', '05-01-2017']})
order = ['start_date', 'end_date']
a = a[order]
a.start_date = pd.to_datetime(a.start_date, dayfirst= True)
a.end_date = pd.to_datetime(a.end_date, dayfirst= True)
b = pd.DataFrame({'start_date' : ['01-01-2014', '01-01-2015', '05-01-2016',
'05-01-2017', '01-01-2015'],
'end_date' : ['01-01-2015', '01-01-2016', '05-01-2017',
'05-01-2018', '05-01-2018']})
order = ['start_date', 'end_date']
b = b[order]
b.start_date = pd.to_datetime(b.start_date, dayfirst= True)
b.end_date = pd.to_datetime(b.end_date, dayfirst= True)
a
b
对于数据框a,解决方案很简单。按start_date 排序,将end_date 下移一位并减去日期,如果差为正数,则日期之间存在差距。
但是,为数据帧 b 实现这一点不太明显,因为存在一个包含更大范围的范围。我不确定这样做的通用方式不会错误地找到差距。这将在分组数据(大约 40000 个组)上完成。
【问题讨论】: