Отметить строку для размещения дубликатов в pandas - PullRequest
1 голос
/ 09 января 2020

У меня есть фрейм данных, как показано ниже

df:

Contaract_ID      Date                      value
123               2011-10-02 07:18:16       250
128               2015-12-06 07:13:18       200
123               2011-10-02 07:18:16       250
123               2011-10-02 07:18:16       250

Из приведенного выше я хочу создать новый столбец, который сообщает, что данная строка является строкой-строкой-дубликатом или нет.

Примечание. Первая строка среди дубликатов не должна помечаться как дубликаты.

Ожидаемый результат:

Contaract_ID      Date                      value     Duplicate
123               2011-10-02 07:18:16       250       No
128               2015-12-06 07:13:18       200       No
123               2011-10-02 07:18:16       250       Yes
123               2011-10-02 07:18:16       250       Yes
128               2016-12-06 07:13:18       210       No
128               2016-12-06 07:13:18       210       Yes

Я пробовал приведенный ниже код, но это не помогло.

df['duplicate'] = df.duplicated(keep=False)

1 Ответ

2 голосов
/ 09 января 2020

Кажется, вам нужно yes для всех дупликов без первой дублированной строки с DataFrame.duplicated со значением по умолчанию first и numpy.where:

df['duplicate'] = np.where(df.duplicated(), 'yes', 'no')

print (df)
    ontaract_ID      Date  value duplicate
123  2011-10-02  07:18:16    250        no
128  2015-12-06  07:13:18    200        no
123  2011-10-02  07:18:16    250       yes
123  2011-10-02  07:18:16    250       yes
128  2016-12-06  07:13:18    210        no
128  2016-12-06  07:13:18    210       yes
...