根据所有列值熊猫创建重复标记

时间:2019-12-29 10:29:56

标签: pandas pandas-groupby

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

Ind_ID     Team_ID      Status      Date
1          1            Win         13-08-2019
1          1            Lost        14-10-2019
1          1            Win         13-08-2019
1          1            Win         13-08-2019

我是python的新手。在上述数据框中,我想添加一列以指示重复项。我们将重复项视为逐行匹配。

Ind_ID     Team_ID      Status      Date           Duplicate
1          1            Win         13-08-2019     No
1          1            Lost        14-10-2019     No
1          1            Win         13-08-2019     Yes
1          1            Win         13-08-2019     Yes

请注意,第一个相同的内容不应标记为重复。

1 个答案:

答案 0 :(得分:1)

DataFrame.duplicatednumpy.where一起使用:

df['Duplicate'] = np.where(df.duplicated(keep=False), 'Yes','No')
print (df)
   Ind_ID  Team_ID Status        Date Duplicate
0       1        1    Win  13-08-2019       Yes
1       1        1   Lost  14-10-2019        No
2       1        1    Win  13-08-2019       Yes
3       1        1    Win  13-08-2019       Yes

或者如果需要按对测试行,则按DataFrame.assign为组添加帮助列:

df['Duplicate'] = np.where(df.assign(new=df.index // 2).duplicated(keep=False), 'Yes','No')
print (df)
   Ind_ID  Team_ID Status        Date Duplicate
0       1        1    Win  13-08-2019        No
1       1        1   Lost  14-10-2019        No
2       1        1    Win  13-08-2019       Yes
3       1        1    Win  13-08-2019       Yes

详细信息

print (df.assign(new=df.index // 2))
   Ind_ID  Team_ID Status        Date  new
0       1        1    Win  13-08-2019    0
1       1        1   Lost  14-10-2019    0
2       1        1    Win  13-08-2019    1
3       1        1    Win  13-08-2019    1