我有一个如下所示的数据框
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)
答案 0 :(得分:2)
似乎所有没有第一行重复的重复项都需要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