Определите 10-минутные окна, которые имеют более N строк - PullRequest
0 голосов
/ 08 января 2019

У меня есть пандас с одним столбцом. Я хотел бы пройти через столбец и определить, где в 10-минутном окне находятся 6 последовательных строк. Или просто подсчет того, сколько раз в 10-минутном окне было 6 последовательных строк.

Я преобразовал из строки во время:

df.iloc[0]

Time   07:19:14
Name: 0, dtype: timedelta64[ns]

Фрейм данных:

df
    Time
0   07:19:14
1   07:27:39
2   07:29:14
3   07:29:59
4   09:23:49
5   09:26:44
6   09:26:49
7   09:29:04
8   09:30:14
9   09:35:09
10  09:35:29
11  09:38:09
12  09:40:49
13  09:46:19
14  09:56:04
15  10:08:24
16  10:09:54
17  10:24:14
18  10:45:29
19  10:55:54
20  10:58:34
21  11:00:35
22  11:02:29
23  11:04:04
24  11:04:04
25  11:26:34
26  11:34:00
27  11:52:04
28  11:55:15
29  11:56:19
... ...
62  15:00:54
63  15:01:24
64  15:03:09
65  15:05:04
66  15:05:29
67  15:07:09
68  15:11:24

Таким образом, из вышесказанного можно определить следующее:

62  15:00:54
63  15:01:24
64  15:03:09
65  15:05:04
66  15:05:29
67  15:07:09

1 Ответ

0 голосов
/ 08 января 2019

Начните с преобразования столбца «Время» в столбец Timedelta, затем используйте groupby + ngroup для обозначения групп, определения размера каждой группы и фильтрации.

df.Time = pd.TimedeltaIndex(df.Time.astype(str))

v = df.groupby(pd.Grouper(key='Time', freq='10min')).ngroup()
df[v.groupby(v).transform('size').ge(6)]

       Time
62 15:00:54
63 15:01:24
64 15:03:09
65 15:05:04
66 15:05:29
67 15:07:09
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...