def durs(df):
    diffs = (df.sign.diff() != 0).cumsum()
cnts = df.sign.iloc[diffs.drop_duplicates().index].value_counts().to_dict()
days = df.groupby(diffs).size()
return days, cnts
Как найти продолжительность события для временного ряда Pandas