分组时间间隔并查找具有相似最小值(输入时间值)的唯一ID

时间:2019-12-26 15:48:59

标签: python pandas datetime group-by

Datanovice在这篇帖子Determining group size based entry and exit times of IDs in my df中为我提供了帮助,因此我对自己的问题有进一步的了解。但是,我现在如何才能将数据集(请参见下面的子集)划分为日期时间秒,并查看ID的“最小值”值,并灵活地对分组的“日期”秒中具有常见“最小值”值的唯一ID进行计数例如,一分钟有什么聪明的方法可以做到这一点吗?

t_code  date                x   y   id      min                 max
4632    2019-09-17 10:17:10 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49
4632    2019-09-17 10:17:10 362 67  5163    2019-09-17 09:38:03 2019-09-17 10:18:29
4633    2019-09-17 10:17:11 209 200 5170    2019-09-17 09:38:19 2019-09-17 12:47:49
4633    2019-09-17 10:17:11 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21
4633    2019-09-17 10:17:11 337 157 5141    2019-09-17 09:37:22 2019-09-17 12:06:30
4633    2019-09-17 10:17:11 391 77  5284    2019-09-17 10:15:59 2019-09-17 10:18:30
4633    2019-09-17 10:17:11 363 69  5163    2019-09-17 09:38:03 2019-09-17 10:18:29
4633    2019-09-17 10:17:11 336 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44
4634    2019-09-17 10:17:12 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21
4634    2019-09-17 10:17:12 337 157 5141    2019-09-17 09:37:22 2019-09-17 12:06:30
4634    2019-09-17 10:17:12 391 76  5284    2019-09-17 10:15:59 2019-09-17 10:18:30
4634    2019-09-17 10:17:12 363 70  5163    2019-09-17 09:38:03 2019-09-17 10:18:29
4634    2019-09-17 10:17:12 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44
4634    2019-09-17 10:17:12 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49
4635    2019-09-17 10:17:13 391 77  5284    2019-09-17 10:15:59 2019-09-17 10:18:30
4635    2019-09-17 10:17:13 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21
4635    2019-09-17 10:17:13 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49
4635    2019-09-17 10:17:13 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44
4635    2019-09-17 10:17:13 363 69  5163    2019-09-17 09:38:03 2019-09-17 10:18:29
4635    2019-09-17 10:17:13 337 158 5141    2019-09-17 09:37:22 2019-09-17 12:06:30
4636    2019-09-17 10:17:14 337 158 5141    2019-09-17 09:37:22 2019-09-17 12:06:30   
4636    2019-09-17 10:17:14 392 76  5284    2019-09-17 10:15:59 2019-09-17 10:18:30
4636    2019-09-17 10:17:14 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21
4636    2019-09-17 10:17:14 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49
4636    2019-09-17 10:17:14 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44
4637    2019-09-17 10:17:15 209 200 5170    2019-09-17 09:38:19 2019-09-17 12:47:49
4637    2019-09-17 10:17:15 247 233 5177    2019-09-17 09:38:27 2019-09-17 11:14:21
4637    2019-09-17 10:17:15 357 69  5163    2019-09-17 09:38:03 2019-09-17 10:18:29
4637    2019-09-17 10:17:15 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44
4637    2019-09-17 10:17:15 390 74  5284    2019-09-17 10:15:59 2019-09-17 10:18:30
4637    2019-09-17 10:17:15 337 157 5141    2019-09-17 09:37:22 2019-09-17 12:06:30
4638    2019-09-17 10:17:16 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44
4638    2019-09-17 10:17:16 337 154 5141    2019-09-17 09:37:22 2019-09-17 12:06:30
4638    2019-09-17 10:17:16 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49
4638    2019-09-17 10:17:16 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21
4638    2019-09-17 10:17:16 356 69  5163    2019-09-17 09:38:03 2019-09-17 10:18:29
4639    2019-09-17 10:17:17 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21
4639    2019-09-17 10:17:17 335 152 5141    2019-09-17 09:37:22 2019-09-17 12:06:30
4639    2019-09-17 10:17:17 355 71  5163    2019-09-17 09:38:03 2019-09-17 10:18:29
4639    2019-09-17 10:17:17 392 74  5284    2019-09-17 10:15:59 2019-09-17 10:18:30
4639    2019-09-17 10:17:17 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44

我的数据集很长,预期结果的样本如下:

t_code  date                x   y   id      min                 max                     GroupSize
4632    2019-09-17 10:17:10 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49     2
4632    2019-09-17 10:17:10 362 67  5163    2019-09-17 09:38:03 2019-09-17 10:18:29     2
4633    2019-09-17 10:17:11 209 200 5170    2019-09-17 09:38:19 2019-09-17 12:47:49     3
4633    2019-09-17 10:17:11 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21     3
4633    2019-09-17 10:17:11 337 157 5141    2019-09-17 09:37:22 2019-09-17 12:06:30     1
4633    2019-09-17 10:17:11 391 77  5284    2019-09-17 10:15:59 2019-09-17 10:18:30     1
4633    2019-09-17 10:17:11 363 69  5163    2019-09-17 09:38:03 2019-09-17 10:18:29     3
4633    2019-09-17 10:17:11 336 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44     1
4634    2019-09-17 10:17:12 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21     3
4634    2019-09-17 10:17:12 337 157 5141    2019-09-17 09:37:22 2019-09-17 12:06:30     1
4634    2019-09-17 10:17:12 391 76  5284    2019-09-17 10:15:59 2019-09-17 10:18:30     2
4634    2019-09-17 10:17:12 391 76  9000    2019-09-17 10:15:39 2019-09-17 10:18:30     2
4634    2019-09-17 10:17:12 363 70  5163    2019-09-17 09:38:03 2019-09-17 10:18:29     3
4634    2019-09-17 10:17:12 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44     1
4634    2019-09-17 10:17:12 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49     3
4635    2019-09-17 10:17:13 391 77  5284    2019-09-17 10:15:59 2019-09-17 10:18:30     1  
4635    2019-09-17 10:17:13 247 232 5177    2019-09-17 09:38:27 2019-09-17 11:14:21     3  
4635    2019-09-17 10:17:13 209 201 5170    2019-09-17 09:38:19 2019-09-17 12:47:49     3 
4635    2019-09-17 10:17:13 335 227 5282    2019-09-17 10:08:50 2019-09-17 13:13:44     1
4635    2019-09-17 10:17:13 363 69  5163    2019-09-17 09:38:03 2019-09-17 10:18:29     3

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

使用:

df['Groupsize']=( df.groupby(['date',pd.Grouper(key = 'min',freq = 'T')])
                    .id
                    .transform('size') )
print(df)

#or this
#df['Groupsize']=( df.groupby([df['date'].dt.second,pd.Grouper(key = 'min',freq = 'T')])
#                    .id
#                    .transform('size') )


    t_code                date    x    y    id                 min  \
0     4632 2019-09-17 10:17:10  209  201  5170 2019-09-17 09:38:19   
1     4632 2019-09-17 10:17:10  362   67  5163 2019-09-17 09:38:03   
2     4633 2019-09-17 10:17:11  209  200  5170 2019-09-17 09:38:19   
3     4633 2019-09-17 10:17:11  247  232  5177 2019-09-17 09:38:27   
4     4633 2019-09-17 10:17:11  337  157  5141 2019-09-17 09:37:22   
5     4633 2019-09-17 10:17:11  391   77  5284 2019-09-17 10:15:59   
6     4633 2019-09-17 10:17:11  363   69  5163 2019-09-17 09:38:03   
7     4633 2019-09-17 10:17:11  336  227  5282 2019-09-17 10:08:50   
8     4634 2019-09-17 10:17:12  247  232  5177 2019-09-17 09:38:27   
9     4634 2019-09-17 10:17:12  337  157  5141 2019-09-17 09:37:22   
10    4634 2019-09-17 10:17:12  391   76  5284 2019-09-17 10:15:59   
11    4634 2019-09-17 10:17:12  363   70  5163 2019-09-17 09:38:03   
12    4634 2019-09-17 10:17:12  335  227  5282 2019-09-17 10:08:50   
13    4634 2019-09-17 10:17:12  209  201  5170 2019-09-17 09:38:19   
14    4635 2019-09-17 10:17:13  391   77  5284 2019-09-17 10:15:59   
15    4635 2019-09-17 10:17:13  247  232  5177 2019-09-17 09:38:27   
16    4635 2019-09-17 10:17:13  209  201  5170 2019-09-17 09:38:19   
17    4635 2019-09-17 10:17:13  335  227  5282 2019-09-17 10:08:50   
18    4635 2019-09-17 10:17:13  363   69  5163 2019-09-17 09:38:03   
19    4635 2019-09-17 10:17:13  337  158  5141 2019-09-17 09:37:22   
20    4636 2019-09-17 10:17:14  337  158  5141 2019-09-17 09:37:22   
21    4636 2019-09-17 10:17:14  392   76  5284 2019-09-17 10:15:59   
22    4636 2019-09-17 10:17:14  247  232  5177 2019-09-17 09:38:27   
23    4636 2019-09-17 10:17:14  209  201  5170 2019-09-17 09:38:19   
24    4636 2019-09-17 10:17:14  335  227  5282 2019-09-17 10:08:50   
25    4637 2019-09-17 10:17:15  209  200  5170 2019-09-17 09:38:19   
26    4637 2019-09-17 10:17:15  247  233  5177 2019-09-17 09:38:27   
27    4637 2019-09-17 10:17:15  357   69  5163 2019-09-17 09:38:03   
28    4637 2019-09-17 10:17:15  335  227  5282 2019-09-17 10:08:50   
29    4637 2019-09-17 10:17:15  390   74  5284 2019-09-17 10:15:59   
30    4637 2019-09-17 10:17:15  337  157  5141 2019-09-17 09:37:22   
31    4638 2019-09-17 10:17:16  335  227  5282 2019-09-17 10:08:50   
32    4638 2019-09-17 10:17:16  337  154  5141 2019-09-17 09:37:22   
33    4638 2019-09-17 10:17:16  209  201  5170 2019-09-17 09:38:19   
34    4638 2019-09-17 10:17:16  247  232  5177 2019-09-17 09:38:27   
35    4638 2019-09-17 10:17:16  356   69  5163 2019-09-17 09:38:03   
36    4639 2019-09-17 10:17:17  247  232  5177 2019-09-17 09:38:27   
37    4639 2019-09-17 10:17:17  335  152  5141 2019-09-17 09:37:22   
38    4639 2019-09-17 10:17:17  355   71  5163 2019-09-17 09:38:03   
39    4639 2019-09-17 10:17:17  392   74  5284 2019-09-17 10:15:59   
40    4639 2019-09-17 10:17:17  335  227  5282 2019-09-17 10:08:50   

                   max  Groupsize  
0  2019-09-17 12:47:49          2  
1  2019-09-17 10:18:29          2  
2  2019-09-17 12:47:49          3  
3  2019-09-17 11:14:21          3  
4  2019-09-17 12:06:30          1  
5  2019-09-17 10:18:30          1  
6  2019-09-17 10:18:29          3  
7  2019-09-17 13:13:44          1  
8  2019-09-17 11:14:21          3  
9  2019-09-17 12:06:30          1  
10 2019-09-17 10:18:30          1  
11 2019-09-17 10:18:29          3  
12 2019-09-17 13:13:44          1  
13 2019-09-17 12:47:49          3  
14 2019-09-17 10:18:30          1  
15 2019-09-17 11:14:21          3  
16 2019-09-17 12:47:49          3  
17 2019-09-17 13:13:44          1  
18 2019-09-17 10:18:29          3  
19 2019-09-17 12:06:30          1  
20 2019-09-17 12:06:30          1  
21 2019-09-17 10:18:30          1  
22 2019-09-17 11:14:21          2  
23 2019-09-17 12:47:49          2  
24 2019-09-17 13:13:44          1  
25 2019-09-17 12:47:49          3  
26 2019-09-17 11:14:21          3  
27 2019-09-17 10:18:29          3  
28 2019-09-17 13:13:44          1  
29 2019-09-17 10:18:30          1  
30 2019-09-17 12:06:30          1  
31 2019-09-17 13:13:44          1  
32 2019-09-17 12:06:30          1  
33 2019-09-17 12:47:49          3  
34 2019-09-17 11:14:21          3  
35 2019-09-17 10:18:29          3  
36 2019-09-17 11:14:21          2  
37 2019-09-17 12:06:30          1  
38 2019-09-17 10:18:29          2  
39 2019-09-17 10:18:30          1  
40 2019-09-17 13:13:44          1