我想根据该商品的第一个订单和最后一个订单之间需要多长时间来计算该商品的分布。 不过,为了实现这一目标,首先我必须获得每个项目的时间增量。
我的初始数据框有三列:“Order_ID”、“Order_DATE”、“Medium_ID”,如下例:
df = pd.DataFrame({'Medium_ID': {0: '1359',
1: '1360',
2: '1359',
3: '1360',
4: '1360',
5: '1404',
6: '1381',
7: '1359',
8: '1419',
9: '1360'},
'Order_ID': {0: '1',
1: '2',
2: '3',
3: '4',
4: '5',
5: '6',
6: '7',
7: '8',
8: '9',
9: '10'},
'Order_DATE': {0: Timestamp('2008-04-21 00:00:00'),
1: Timestamp('2008-04-21 00:00:00'),
2: Timestamp('2008-04-21 00:00:00'),
3: Timestamp('2008-04-21 00:00:00'),
4: Timestamp('2008-04-22 00:00:00'),
5: Timestamp('2008-04-22 00:00:00'),
6: Timestamp('2008-04-23 00:00:00'),
7: Timestamp('2008-04-23 00:00:00'),
8: Timestamp('2008-04-23 00:00:00'),
9: Timestamp('2008-04-28 00:00:00')}}))
因为同一个 media_ID 可以有多个 order_ID,所以我首先尝试按“Medium_ID”列进行分组,但随后我不知道如何演变。
我想要一个包含两列的新数据框:“Medium_ID”和“Days_ Between_the_last_and_the_first-order”,最后显示“Days_ Between_the_last_and_the_first-order”系列的分布。
最佳答案
您可以计算每个商品的第一个订单和最后一个订单之间的天数,例如:
df.groupby('Medium_ID').Order_DATE.apply(lambda x: x.max() - x.min())
结果是:
Medium_ID
1359 2 days
1360 7 days
1381 0 days
1404 0 days
1419 0 days
关于python-3.x - 计算行之间的时间增量作为第二列每个元素的最大时间和最小时间之间的差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764934/