常用项目选择 - Pandas Dataframe

Common item selection - Pandas Dataframe

好的,我知道这应该很容易,但解决方案让我望而却步。我正在 python 中进行一些社交网络分析,并且有一个 pandas 数据框(连接)包含这样的数据...

uid  |   name   |  fuID  |  friendName   | 
1    |  Bob     |   f1   |   Jimmy       |
1    |  Bob     |   f2   |   Frank       |
1    |  Bob     |   f3   |   Sal         |
2    |  Mark    |   f4   |   Leon        |
2    |  Mark    |   f1   |   Jimmy       |
2    |  Mark    |   f5   |   Artie       |
3    |  Steve   |   f1   |   Jimmy       |
3    |  Steve   |   f5   |   Artie       |
3    |  Steve   |   f6   |   Samuel      |

目标是找到所有共享的朋友,换句话说,我希望能够找到所有具有多个连接的 friendName/fuIDs 以及这些连接是什么。例如,Jimmy 连接到 Bob、Mark 和 Steve。

我可以很容易地创建一个 groupby ... connections.groupby("uid") 并假设有一种方法可以与组进行比较以找到共同的项目,但我已经撞墙。我开始构建一个复杂的 for 循环来遍历组,然后就停止了,因为我知道必须有一种我只是缺少的简单方法来执行此操作。

如有任何帮助,我们将不胜感激。

好吧,你快到了 --

fdfg = connections.groupby('friendName')
for k, v in fdfg:
    if len(v) > 1:
        print k
        print v.name
Artie
5     Mark
7    Steve
Name: name, dtype: object
Jimmy
0      Bob
4     Mark
6    Steve
Name: name, dtype: object

可能还有更简洁的方法。