【发布时间】:2021-11-17 18:00:19
【问题描述】:
例如,让我们考虑以下数据框:
Restaurant_ID Floor Cust_Arrival_Datetime
0 100 1 2021-11-17 17:20:00
1 100 1 2021-11-17 17:22:00
2 100 1 2021-11-17 17:25:00
3 100 1 2021-11-17 17:30:00
4 100 1 2021-11-17 17:50:00
5 100 1 2021-11-17 17:51:00
6 100 2 2021-11-17 17:25:00
7 100 2 2021-11-17 18:00:00
8 100 2 2021-11-17 18:50:00
9 100 2 2021-11-17 18:56:00
对于上面的玩具示例,我们可以认为Cust_Arrival_Datetime 按商店和楼层进行排序和分组(如上所示)。现在,我们如何计算每个独特商店和楼层组的客户到达的中间时间间隔等数据?
期望的输出是:
Restaurant_ID Floor Median Arrival Interval(in minutes)
0 100 1 3
1 100 2 35
平均到达间隔计算如下:对于商店的一楼,我们可以看到到第二个顾客到达时,距离第一个顾客到达已经过去了 2 分钟。同样,第 2 位和第 3 位顾客之间经过了 3 分钟,而第 3 位和第 4 位顾客之间经过了 5 分钟等。1 楼和餐厅 100 的中位数为 3。
我尝试过这样的事情:
df.groupby(['Restaurant_ID', 'Floor'].apply(lambda row: row['Customer_Arrival_Datetime'].shift() - row['Customer_Arrival_Datetime']).apply(np.median)
但这不起作用!
欢迎任何帮助!
【问题讨论】:
标签: python pandas pandas-groupby