我有一个数据框,如下所示
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
请注意,第一个相同的内容不应被标记为重复项。
最佳答案
使用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
关于pandas - 根据 pandas 的所有列值创建重复标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518584/