查找 pandas df 中列组合的计数
Posted
技术标签:
【中文标题】查找 pandas df 中列组合的计数【英文标题】:Find count of combinations of column in 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 种组合。
并创建一个具有
的数据框df2product_id_x combinations
1 3
3 4
and so on ..(distinct product_id_x's)
我应该遵循什么方法? 我在 python 上的技能处于初级水平。 提前致谢。
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于查找 pandas df 中列组合的计数的主要内容,如果未能解决你的问题,请参考以下文章