我有一个包含包裹ID、出发时间、到达时间和包裹类型的表格。
下面是一个最小的工作示例,用于说明该表格。
对于每一行,我都试图获取相似类型(即电视或电脑)的包裹数量,其出发时间大于或等于[所考虑行的出发时间]且严格小于[所考虑行的到达时间]。
输入数据的示例:
下面是一个最小的工作示例,用于说明该表格。
对于每一行,我都试图获取相似类型(即电视或电脑)的包裹数量,其出发时间大于或等于[所考虑行的出发时间]且严格小于[所考虑行的到达时间]。
输入数据的示例:
Parcel_id, departure_time, arrival_time, type
id_1, 07:00, 07:30, TV
id_2, 07:00, 07:15, PC
id_3, 07:05, 07:22, PC
id_4, 07:10, 07:45, TV
id_5, 07:15, 07:50, TV
id_6, 07:10, 07:26, PC
id_7, 07:40, 08:10, TV
id_8, 07:14, 07:46, TV
id_9, 07:14, 07:32, PC
id_10, 07:15, 07:30, PC
期望输出数据示例
Parcel_id, departure_time, arrival_time, type, number_of_parcels
id_1, 07:00, 07:30, TV, 4
id_2, 07:00, 07:15, PC, 4
id_3, 07:05, 07:22, PC, 4
id_4, 07:10, 07:45, TV, 4
id_5, 07:15, 07:50, TV, 2
id_6, 07:10, 07:26, PC, 3
id_7, 07:40, 08:10, TV, 1
id_8, 07:14, 07:46, TV, 3
id_9, 07:14, 07:32, PC, 2
id_10, 07:15, 07:30, PC, 1
我尝试使用groupby函数,并应用条件...但一直没有成功。
table['number_of_parcels']= table.groupby(['type']).cond.apply(lambda g: (g>=table['departure`_time'] & g<table['arrival_time'])).count()
有人知道如何破解这个吗?
非常感谢。