2016-02-22 3 views
6

У меня есть основные вопросы Python.Найти строки, которые имеют одинаковые значения в другом столбце - Python

У меня есть панд dataframe вроде этого:

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, без возвращения имен, которые появляются дважды. Поэтому я хотел бы выход выглядеть примерно так:

John Jen 10 
Tom Tim 11 
+0

'без возвращения имен, которые появляются дважды' -> что вы имеете в виду? Что случилось с Шон? –

ответ

8

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 
+0

Это то, что я искал! Спасибо EdChum! –

Смежные вопросы