Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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 如何找到一个组中有多少成员同时也是另一个组的成员?_Python - Fatal编程技术网

Python 如何找到一个组中有多少成员同时也是另一个组的成员?

Python 如何找到一个组中有多少成员同时也是另一个组的成员?,python,Python,我试图找出某个群体中出现在其他群体中的人数。例如,以下是熊猫数据帧: d = {'name': ['ash', 'psyduck', 'pikachu', 'charizard', 'ash', 'psyduck'], 'group': ['a', 'b', 'c', 'b', 'b', 'a']} 看起来是这样的: 阿什:a Psyduck:b 皮卡丘:c 查里扎德:b 灰烬:b Psyduck:a 我正在尝试创建一个如下所示的交叉表格: a b c a 2 2

我试图找出某个群体中出现在其他群体中的人数。例如,以下是熊猫数据帧:

d = {'name': ['ash', 'psyduck', 'pikachu', 'charizard', 'ash', 'psyduck'], 'group': ['a', 'b', 'c', 'b', 'b', 'a']}
看起来是这样的:

阿什:a

Psyduck:b

皮卡丘:c

查里扎德:b

灰烬:b

Psyduck:a

我正在尝试创建一个如下所示的交叉表格:

   a   b    c
a  2   2    0
b  2   3    0
c  0   0    1
本质上,这个交叉表显示了x组中有多少成员也是x组的成员。例如,a组和b组中有两个人,因此在这些柱的交叉处有一个2

我使用了Pandas交叉表功能,但它没有给出我想要的结果

import pandas as pd

d = {'name': ['ash', 'psyduck', 'pikachu', 'charizard', 'ash', 'psyduck'], 'group': ['a', 'b', 'c', 'b', 'b', 'a']}

df = pd.DataFrame(d)
df = df.merge(df, on='name')
print(
  pd.crosstab(df.group_x, df.group_y)
)
输出:

group_y  a  b  c
group_x         
a        2  2  0
b        2  3  0
c        0  0  1

演示:

@AlexHall这并不能解决我的问题。我用多种方法尝试了pandas crosstab,但仍然没有得到我想要的结果。可能是groupby和pivot表的组合这是一个起点,如果它有帮助的话:printdf.groupby'name'['group']。applylist@stackoverflowusrone它显示了x组有多少成员也是x组的成员。也就是说,a组和b组有两个人,因此在这些列的交叉处有一个2。做得好,我一直在努力寻找一种简单的方法来做到这一点,我用了8行,干杯!