在另一列中查找具有相同值的行 - Python

时间:2016-02-22 15:57:03

标签: python pandas group-by dataframe

我有一个基本的Python问题。

我有一个像这样的pandas数据框:

ID | Name | User_id
---+------+--------
 1   John     10
 2   Tom      11  
 3   Sam      12
 4   Ben      13
 5   Jen      10
 6   Tim      11
 7   Sean     14
 8   Ana      15
 9   Sam      12
 10  Ben      13

我想获取与User_id共享相同值的名称和用户ID,而不返回出现两次的名称。所以我希望输出看起来像这样:

John Jen 10
Tom Tim 11

1 个答案:

答案 0 :(得分:9)

IIUC你可以这样做,groupby在' User_id'然后过滤groupby:

In [54]:
group = df.groupby('User_id')['Name'].unique()

In [55]:
group[group.apply(lambda x: len(x)>1)]

Out[55]:
User_id
10    [John, Jen]
11     [Tom, Tim]
Name: Name, dtype: object