常用项目选择 - 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
可能还有更简洁的方法。
好的,我知道这应该很容易,但解决方案让我望而却步。我正在 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
可能还有更简洁的方法。