我有一个如下所示的数据框
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
请注意,第一个相同的内容不应标记为重复。
答案 0 :(得分:1)
将DataFrame.duplicated
与numpy.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