我有一个如下所示的HUGHE DataFrame(这只是一个说明问题的示例):
id timestamp target_time interval
1 08:00:00 10:20:00 (10-11]
1 08:30:00 10:21:00 (10-11]
1 09:10:00 11:30:00 (11-12]
2 09:15:00 10:15:00 (10-11]
2 09:35:00 10:11:00 (10-11]
3 09:45:00 11:12:00 (11-12]
...
我想创建一个如下的系列:
interval timestamp unique_ids
(10-11] 08:00:00 1
08:30:00 1
09:15:00 1
09:35:00 1
(11-12] 09:10:00 1
09:45:00 2
目标是针对每个时间间隔计算在其时间戳记的间隔内有多少个唯一ID对应于其target_time。请注意,每个ID的target_time可以在不同的时间戳上更改。例如,对于ID 1,间隔是从08:00:00到08:30:00的(10-11),但随后在09:10:00变为(11-12]。因此,在09: 15:00我不想在生成的系列中计算id 1。
我尝试了groupby->扩展-> np.unique方法,但是它没有提供我想要的结果:
df.set_index('timestamp').groupby('interval').id.expanding().apply(lambda x: np.unique(x).shape[0])
interval timestamp unique_ids
(10-11] 08:00:00 1
08:30:00 1
09:15:00 2
09:35:00 2
(11-12] 09:10:00 1
09:45:00 2
关于如何解决此问题的任何提示?我想尽可能地利用熊猫例程,以减少计算时间,因为DataFrame的长度是1453076 ...
非常感谢!