Найти строки данных с одинаковым значением столбца в Pandas - PullRequest
1 голос
/ 05 июня 2019

Для простоты рассмотрим фрейм данных с 2 столбцами. Первый столбец id и это ключ. Второй столбец с именем code не является ключом, но случай, когда две записи имеют одинаковое значение, встречается очень редко.

Я хочу найти строки, имеющие одинаковое значение code, но, конечно, другое id.

Как я могу это сделать в Пандах?

1 Ответ

1 голос
/ 05 июня 2019

Я полагаю, вам нужно DataFrame.duplicated для всех дубликатов по столбцам и для заказа используйте DataFrame.sort_values:

df = pd.DataFrame({
        'id':[1,2,3,4,5,6],
        'code':list('abcdac'),

})

print (df)
   id code
0   1    a
1   2    b
2   3    c
3   4    d
4   5    a
5   6    c

df1 = df[df.duplicated('code', keep=False)].sort_values('code')
print (df1)
   id code
0   1    a
4   5    a
2   3    c
5   6    c

Или, если нужны списки, используйте groupby с list:

df2 = df[df.duplicated('code', keep=False)].groupby('code')['id'].apply(list).reset_index()
print (df2)
  code      id
0    a  [1, 5]
1    c  [3, 6]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...