在熊猫中逐行标记重复项

时间:2020-01-09 13:47:18

标签: pandas pandas-groupby

我有一个如下所示的数据框

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 个答案:

答案 0 :(得分:2)

似乎所有没有第一行重复的重复项都需要yes,其中DataFrame.duplicated的默认参数为firstnumpy.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