首页 > 解决方案 > 在熊猫中标记一行到行重复项

问题描述

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

东风:

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)

标签: pandaspandas-groupby

解决方案


似乎您需要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

推荐阅读