我有一栏熊猫数据框。我想遍历该列并确定在10分钟的窗口中有6个连续的行。或者只是算出在10分钟的窗口中连续6行的次数。
我从字符串转换为时间:
dependencies {
// Firebase
implementation 'com.firebase:firebase-client-android:2.5.2'
数据框:
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
答案 0 :(得分:1)
首先将“时间”列转换为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