У меня есть фрейм данных, состоящий из столбца 1, т.е. событие, а столбец 2 - Datetime:
Пример данных
Class Event Time
0 A 0 2020-02-19 11:00:00
1 A 0 2020-02-19 11:30:00
2 B 1 2020-02-19 11:00:00
3 B 1 2020-02-19 11:30:00
4 B 0 2020-02-19 12:00:00
5 B 0 2020-02-19 12:30:00
6 A 0 2020-02-19 14:00:00
7 B 1 2020-02-19 13:30:00
8 A 1 2020-02-19 15:00:00
9 B 1 2020-02-19 15:30:00
10 A 0 2020-02-19 15:30:00
11 B 0 2020-02-19 16:00:00
12 A 1 2020-02-19 16:30:00
И я хочу найти время начала и время окончания каждого события по классу: я попробовал приведенный ниже код из ответа на мой предыдущий вопрос , но получаю пустой фрейм данных:
current_event = None
result = []
grouped=df.groupby(['Class'])
for name, group in grouped:
for class, event, time in zip(data['Class'],data['Event'], data['Time']):
if event != current_event:
if current_event is not None:
result.append([Class,current_event, start_time, time])
class, current_event, start_time = class, event, time
data = pandas.DataFrame(result, columns=['Class','Event','EventStartTime','EventEndTime'])
требуемые данные
Class Event EventStartTime EventEndTime
0 A 0 2020-02-19 11:00:00 2020-02-19 15:00:00
1 A 1 2020-02-19 15:00:00 2020-02-10 15:30:00
2 A 0 2020-02-19 15:30:00 2020-02-10 16:30:00
3 B 1 2020-02-19 11:00:00 2020-02-10 12:00:00
4 B 0 2020-02-19 12:00:00 2020-02-19 13:30:00
5 B 1 2020-02-19 13:30:00 2020-02-19 16:00:00
Примечание: EventEndTime - это время, когда событие меняет значение, скажем, со значения 1 на полученное изменение на 0 или любое другое значение определенного класса