【问题标题】:Find count of combinations of column in pandas df查找 pandas df 中列组合的计数
【发布时间】:2017-04-04 10:10:52
【问题描述】:

我在 pandas df 中有一张桌子

product_id_x   product_id_y
1              2
1              3
1              4
3              7
3              11
3              14
3              2
and so on around (1000 rows)

我想找出每个 product_id_x 与 product_id_y 的组合数。

即。 1 与 1-2,1-3,1-4 有组合(共 3 个组合) 同样 3 共有 4 种组合。

并创建一个具有

的数据框df2
product_id_x   combinations
1               3
3               4

and so on ..(distinct product_id_x's)

我应该遵循什么方法? 我在 python 上的技能处于初级水平。 提前致谢。

【问题讨论】:

    标签: python python-2.7 python-3.x pandas


    【解决方案1】:

    您可以在product_id_x 列上使用groupby with agg

    df2 = df.groupby(['product_id_x']).agg(['count'])
    

    或者,您可以直接在组上使用size 函数来获取每个组的大小:

    df2 = df.groupby(['product_id_x']).size()
    

    【讨论】:

    • 我不明白你的意思。分组后,您将只获得与每个product_id_x 对应的一行。在这种情况下你想如何显示product_id_y
    • 我试过你的df2 = df.groupby(['product_id_x']).size()代码,我把它修改为df2['count'] = dataFrame.groupby(['product_id_x']).size(),因为我想要一个列名来表示大小,但列名仍然没有显示
    【解决方案2】:

    size 计算每个列值对同时发生的行数。 count 计算相同的东西,但它们不为空。既然你没有提到任何关于空值的事情,我会在groupby 之后使用size,然后是unstack

    df.groupby(['product_id_x', 'product_id_y']).size().unstack(fill_value=0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-27
      • 2017-04-04
      • 2018-12-27
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多