【发布时间】:2022-01-20 08:24:05
【问题描述】:
我收到一个(熊猫)数据框,告诉我有关人员和俱乐部的会员关系。我要查找的是任意两个俱乐部共有的成员数量。
示例输入:
Person Club
1 A
1 B
1 C
2 A
2 C
3 A
3 B
4 C
换句话说,A = {1,2,3},B = {1,3},C = {1,2,4}。
期望的输出:
Club 1 Club 2 Num_Overlaps
A B 2
A C 2
B C 1
我当然可以编写计算这些数字的 python 代码,但我想肯定有一种更类似于数据帧的方式使用 groupby 左右来完成同样的事情。
【问题讨论】:
-
请包含您的计算这些数字的python代码。
-
Person 1 和Person 3 都在Club A 和B 中。第一行的重叠数不应该是2 吗?
-
@MichaelSzczesny 我可能已经将数据框读取到字典中,将俱乐部作为一组人,然后迭代成对的俱乐部并在 for 循环中计算它们的交集。我没有把它写下来,因为我认为这不是你应该这样做的方式,因为我想把数据放在最后的数据框中,因此是这个问题。
-
谢谢@rchome,你当然是对的。相应地进行了编辑。