【发布时间】:2020-06-09 00:51:23
【问题描述】:
我想查找条件 1 列不同的重复行
df = pd.DataFrame([['A', '1','Tom'], ['A','1','Tom'], ['A','1','Jerry'], ['A','1','Jerry'], ['A','2','Mary'],['B','1','Tony'],['B','1','Andy']], columns = ['company code','user id', 'user name'])
df[out]
company code user id user name
0 A 1 Tom
1 A 1 Tom
2 A 1 Jerry
3 A 1 Jerry
4 A 2 Mary
5 B 1 Tony
6 B 1 Andy
条件是 1 家公司只能有 1 个同名的用户 ID。在这种情况下,结果将如下所示,因为用户 ID 是不同的名称(Tom and Jerry),所以它是重复数据。
company code user id user name Duplicate
0 A 1 Tom True
1 A 1 Tom True
2 A 1 Jerry True
3 A 1 Jerry True
4 A 2 Mary False
5 B 1 Tony True
6 B 1 Andy True
我尝试使用 duplicated() 但结果不正确,如下所示:
df['dup_id'] = df[['company code','user id']].duplicated(keep=False)
df['dup_name'] = df[['company code','user name']].duplicated(keep=False)
df['result dup'] = np.where((df['dup_id']==True & (df['dup_name']==False)),True,False)
company code user id user name dup_id dup_name result dup
0 A 1 Tom True True False
1 A 1 Tom True True False
2 A 1 Jerry True True False
3 A 1 Jerry True True False
4 A 2 Mary False False False
5 B 1 Tony True False True
6 B 1 Andy True False True
由于汤姆和杰瑞有重复的名字,所以我一直在努力寻找不同的名字。提前感谢您的帮助。
【问题讨论】:
-
为什么
Tony在第 5 行和第 6 行没有重复? -
这只是
df.duplicated(keep=False)? -
@QuangHoang 你对我的错误感到抱歉。我已经编辑了我的问题。谢谢
-
@Erfan 我尝试使用 df.duplicated(keep=False) 但由于用户 ID 是主键,所以如果名称也不同,我想返回 True。
-
你有
dup_id然后
标签: python pandas numpy dataframe