首页 > 解决方案 > 来自同一列的一对行元素的出现次数

问题描述

我有以下数据(来自大约 20000 行的样本)

    Date        Time                Transaction Item            Year    Month   Day Weekday Hour
0   2016-10-30  2018-10-25 09:58:11 1           Bread           2016    10      30  6       9
1   2016-10-30  2018-10-25 10:05:34 2           Scandinavian    2016    10      30  6       10
2   2016-10-30  2018-10-25 10:05:34 2           Scandinavian    2016    10      30  6       10
3   2016-10-30  2018-10-25 10:07:57 3           Hot chocolate   2016    10      30  6       10
4   2016-10-30  2018-10-25 10:07:57 3           Jam             2016    10      30  6       10
5   2016-10-30  2018-10-25 10:07:57 3           Cookies         2016    10      30  6       10
6   2016-10-30  2018-10-25 10:08:41 4           Muffin          2016    10      30  6       10
7   2016-10-30  2018-10-25 10:13:03 5           Coffee          2016    10      30  6       10
8   2016-10-30  2018-10-25 10:13:03 5           Pastry          2016    10      30  6       10
9   2016-10-30  2018-10-25 10:13:03 5           Bread           2016    10      30  6       10

我正在尝试分析最常购买的两种商品。像面包和果酱或咖啡和面包。我有交易ID,所以我们可以分析这个属性。我想根据事务 id 找到所有可能对的完整出现次数。我如何实现这一目标?

标签: pythonpython-3.xpandas

解决方案


您可以对事务 ID 进行交叉连接,然后按不同的对分组,对按字母顺序排列的对进行重复数据删除。

cross = df.merge(df, on='Transaction')
cross[cross['Item_x']>cross['Item_y']].groupby(['Item_x','Item_y']).size()

推荐阅读