我有这样的数据帧
Transport Elapsed_Time gap_time gap_minutes
0 taxi 556.0 0 days 00:00:02 0.0
1 walk 95.0 0 days 00:53:34 53.0
2 taxi 44.0 0 days 02:02:00 122.0
3 taxi 2.0 0 days 17:05:56 1025.0
4 walk 73.0 0 days 00:14:31 14.0
5 boat 10.0 0 days 00:02:16 2.0
6 walk 34.0 0 days 00:00:42 0.0
7 boat 8.0 0 days 00:00:54 0.0
8 walk 37.0 0 days 00:07:25 7.0
9 boat 30.0 0 days 00:00:23 0.0
10 walk 105.0 0 days 00:04:59 4.0
11 taxi 14.0 0 days 00:01:06 1.0
12 walk 31.0 0 days 18:01:32 1081.0
13 taxi 10.0 0 days 01:06:11 66.0
14 train 41.0 0 days 16:59:25 1019.0
15 walk 3.0 0 days 00:02:28 2.0
16 taxi 137.0 276 days 23:49:58 1429.0
我喜欢根据阈值gap_minutes>;20
生成的数据帧如下所示
df1:
^{pr2}$df2:
2 taxi 44.0 0 days 02:02:00 122.0
df3:
3 taxi 2.0 0 days 17:05:56 1025.0
df4:
4 walk 73.0 0 days 00:14:31 14.0
5 boat 10.0 0 days 00:02:16 2.0
6 walk 34.0 0 days 00:00:42 0.0
7 boat 8.0 0 days 00:00:54 0.0
8 walk 37.0 0 days 00:07:25 7.0
9 boat 30.0 0 days 00:00:23 0.0
10 walk 105.0 0 days 00:04:59 4.0
11 taxi 14.0 0 days 00:01:06 1.0
12 walk 31.0 0 days 18:01:32 1081.0
df5:
13 taxi 10.0 0 days 01:06:11 66.0
df6:
14 train 41.0 0 days 16:59:25 1019.0
df7:
15 walk 3.0 0 days 00:02:28 2.0
16 taxi 137.0 276 days 23:49:58 1429.0
让我们试试这个,“listofff”是一个数据帧字典,在本例中,键为1到7。首先,让我们确定间隙时间pd时间增量数据类型,然后分组:
输出:
^{pr2}$一。 . . 在
工作原理:
弄清楚它是如何工作的最好方法是把有问题的陈述分成几个部分。首先
让我们计算出哪个间隔大于20,那么如果将
gap_time
除以20分钟,得到一个大于或等于1的值,那么我们就知道我们需要开始一个新的组。在输出:
这是技巧部分,现在,我要将所有的“假”记录与以下“真”记录分组。看看
gap_time
和你的逻辑。为此,我们需要颠倒记录的顺序,然后使用cumsum
。基本上每一个真实记录的累计量都会增加。所以,真等于1,那么所有的假记录都得到1,直到下一个真记录变为2,所有假记录得到2,直到下一个真记录为止。在输出:
使用这个新系列作为将数据帧分组成块的方法,因此我们使用上面的系列中的g=groupby。在
相关问题 更多 >
编程相关推荐