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行,干杯!