Вопрос здесь заключается в том, что я использую 2 набора данных: df1
имеет все данные журнала времени за несколько лет;df2
содержит данные об инцидентах, которые произошли в определенный момент времени. Мне нужно извлечь из df1
сегмент однонедельных данных прямо перед датой и временем IncidentTime
в df2
(таким образом, IncidentTime
является временем окончания 7-дневного периода дляконкретный Group_Id
).
Примечание: Group_Id
может иметь более 1 инцидента (т. Е. В df2
может быть несколько строк с одним и тем же Group_Id
).
Вот наборы данных:
df1
Timestamp Group_Id Data
2013-10-20 00:00:05.143 11 14
2013-10-21 00:05:10.377 11 15
2013-10-22 14:22:15.501 11 19
...
2016-03-05 00:00:05.743 101 21
2017-12-24 00:00:10.407 101 33
...
df2
IncidentTime Group_Id
27/10/13 16:08 11
03/12/16 16:11 2
24/10/14 12:08 11
04/07/17 08:00 100
03/04/13 14:10 26
15/11/18 17:00 46
11/02/19 00:20 101
Затем создайте новый столбец в окончательных данных для IncidentTime
(это будет одинаковым для Group_Id
каждый раз). Например, Group_Id = 11
имеет IncidentTime
из 27/10/13 16:08
, поэтому мы берем все данные из df1
для Group_Id = 11
, где его Timestamp
лежит между 20/10/13 16:08
и 27/10/13 16:08
. Таким образом, наши окончательные данные df3
имеют 7-дневные данные, соответствующие собственным IncidentTime
для всех Group_Id
:
df3
IncidentTime Group_Id Timestamp Data
27/10/13 16:08 11 2013-10-20 19:10:05.143 14
27/10/13 16:08 11 2013-10-21 00:05:10.377 15
27/10/13 16:08 11 2013-10-22 14:22:15.501 19
...
27/10/13 16:08 11 2013-10-27 05:22:15.501 20
...