df = pd.melt(df, id_vars='Event', var_name='Which', value_name='Time')
df['Signal'] = df.pop('Which').replace({'Start-Time': 1, 'End-Time': -1})
pivoted = df.pivot(columns='Event', index='Time').fillna(0)
pivoted = pivoted.sort_index()
df_out = pivoted.cumsum() + (pivoted == -1)
Создайте новый кадр данных временной серии pandas из другого кадра данных