如何按类别1和类别2计算事件之间的平均天数

2024-04-25 12:12:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张按商店和产品分类的商店盗窃事件表。我正在尝试使用Python来按产品计算商店行窃事件之间的平均天数。我的桌子是这样的:

Product   Store  Shoplifting date  Times shoplifted
1         A      8/28/2016         6
2         A      8/28/2016         6
3         A      8/28/2016         6
2         B      8/22/2016         3
1         B      8/22/2016         3
3         B      8/22/2016         3
1         C      8/18/2016         2
3         C      8/18/2016         2
4         C      8/18/2016         2
1         A      8/18/2016         5
3         A      8/18/2016         5
1         B      8/16/2016         2
1         A      8/14/2016         4
4         C      8/13/2016         1
3         A      8/12/2016         4
2         A      8/12/2016         4

产品1在8月28日、8月18日和8月14日(盗窃间隔10天和4天)从A店被盗,在8月22日和8月16日(8天)从B店被盗,平均(10+4+8)/3=7.33天。因此,对于产品1,预期结果将是:

Product    Days between shoplifting
1          7.33

“商店盗窃次数”一栏是商店被商店盗窃的累计次数。它会随着每次商店盗窃事件而增加。例如,2016年8月28日,A店被人在商店里偷走了1、2和3号商品。这是该商店第6次被人从商店里偷走。你知道吗

我试图计算平均天数之间的商店行窃按产品。我已经写了很多for循环,它变得相当混乱,所以我想一个更干净的方式来做它。我不太熟悉熊猫,但我相信它有一些方便的时间处理能力。。。?你将如何解决熊猫的这个问题?还是有更好的办法?你知道吗


Tags: storedate间隔产品事件分类product次数
1条回答
网友
1楼 · 发布于 2024-04-25 12:12:20

我首先按Shoplifting date对数据帧进行排序,然后对于每个组,diff将给出时间增量,mean将平均它们。你知道吗

df.sort_values('Shoplifting date').groupby(
    'Product'
)['Shoplifting date'].apply(lambda x: x.diff().mean()).dropna()

Product
1      0 days
3      0 days
582   10 days
650    4 days
Name: Shoplifting date, dtype: timedelta64[ns]

相关问题 更多 >

    热门问题