Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在df中查找列组合的计数_Python_Python 2.7_Python 3.x_Pandas - Fatal编程技术网

Python 在df中查找列组合的计数

Python 在df中查找列组合的计数,python,python-2.7,python-3.x,pandas,Python,Python 2.7,Python 3.x,Pandas,我有一张桌子 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) 我想找到每个产品的组合计数 即1具有1-2,1-3,1-4的组合(总共3个组合) 类似地,3总共有4个组合 并创建一个具有 pr

我有一张桌子

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)
我想找到每个产品的组合计数

即1具有1-2,1-3,1-4的组合(总共3个组合) 类似地,3总共有4个组合

并创建一个具有

product_id_x   combinations
1               3
3               4

and so on ..(distinct product_id_x's)
我应该采取什么方法? 我的python技能处于初级水平。 提前感谢。

您可以在
产品id\u x
栏中使用:

df2 = df.groupby(['product_id_x']).agg(['count'])
或者,您可以直接在组上使用
size
函数来获取每个组的大小:

df2 = df.groupby(['product_id_x']).size()
您可以在
product\u id\u x
列上使用:

df2 = df.groupby(['product_id_x']).agg(['count'])
或者,您可以直接在组上使用
size
函数来获取每个组的大小:

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

size
统计每个列值对同时出现的行数
count
对同一事物进行计数,但不为空。由于您没有提到任何有关空值的内容,因此我将在
groupby
之后使用
size
,然后使用
unstack

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

size
统计每个列值对同时出现的行数
count
对同一事物进行计数,但不为空。由于您没有提到任何有关空值的内容,因此我将在
groupby
之后使用
size
,然后使用
unstack

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

我不明白你的意思。分组后,您将只得到与每个
产品\u id\u x
对应的一行。在这种情况下,您希望如何显示
product\u id\u y
?我尝试了您的
df2=df.groupby(['product\u id\u x']).size()
code,我将其修改为
df2['count']=dataFrame.groupby(['product\u id\u x']).size()
,因为我想要一个大小的列名,但列名仍然没有显示出来。我不明白您的意思。分组后,您将只得到与每个
产品\u id\u x
对应的一行。在这种情况下,您希望如何显示
product\u id\u y
?我尝试了您的
df2=df.groupby(['product\u id\u x']).size()
code,我将其修改为
df2['count']=dataFrame.groupby(['product\u id\u x']).size()
,因为我需要一个大小的列名,但列名仍然没有显示出来