incomplete_coverage = []
cols = ['ID_number', 'TimeOfDay', 'TypeOfCargo', 'TrackStart']
df_s = df.sort_values(['SectionStart', 'SectionStop'])
df_s.groupby(cols).apply(Full_coverage_nosort)
Pandas groupby apply performing slow