Необходимо достать дубликаты

Коллеги, доброго времени суток. Есть 2 датафрейма за 2 месяца, имеющие данные юзера, необходимо эти 2 датафрейма сравнить и найти юзеров, которые повторяются в 2 месяцах. На данный момент оставил только необходимый столбец и вроде как создал новый столбец со значением(повторяется или нет). Ссылка на исходные данные

m = (october.merge(november, how='outer', on=['Структурная единица'], 
          suffixes=['', '_new'], indicator=True))
Структурная единица _merge
0 Клиент both
1 ЦСО Тверь both
2 1760 left_only
3 1760 left_only
4 6251 left_only
... ...
23984 Яшкевич Валерий Олегович
23985 яшкевич вероника
23986 яшкевич николай
23987 Яшов Захар Денисович
23988 Яшова Надия Мусхатовна right_only

23989 rows × 2 columns

Ещё прикрепляю скриншот таблицы для наглядности, а то не получилось сделать таблицу такой же: введите сюда описание изображения Как я могу вывести в отдельный датафрейм всех повторяющихся пользователей и их количество?


Ответы (2 шт):

Автор решения: Алексей Р

Если нужен перечень уникальных ФИО, которые встречаются и в первом и во втором фрейме, то так:

df = df1.merge(df2, on='Структурная единица', how='inner')['Структурная единица'].drop_duplicates()

Индикатор здесь лишний, достаточно применить аргумент how='inner'. Потом удалить дубликаты.

→ Ссылка
Автор решения: Kirill Kondratenko

Если я правильно понимаю, что необходимо найти совпадения по пользователю и общее количество повторений этого пользователя в двух датафреймах, то подойдёт функция с использованием .isin() и value_counts():

def user_counts(df1, df2, column):
    return (df1[df1[column].isin(df2[column])][column].value_counts() +
            df2[df2[column].isin(df1[column])][column].value_counts()).reset_index()

user_counts(october, november, 'Структурная единица')

Вывод:

    Структурная единица count
0   Абаканов Савелий Андреевич  2
1   Абасов Эмиль    2
2   Абашин Роман Владимирович   3
3   Аббасова Диана Дмитриевна   4
4   Абдулин 2
... ... ...
2245    тимофеева алиса николаевна  2
2246    федорова александра андреевна   3
2247    школьников юрий олеговвич   4
2248    шувалов федор александрович 3
2249    янглеев данила артемович    2

2250 rows × 2 columns
→ Ссылка