我有一个数据帧,它反映了行中至少有一个id
冲突的行
email id1 id2 id3
0 de@l Z7 Q4 Q4
1 sco@g Q4 Z7 Q4
2 alpha@n Q4 Z7 Z7
3 numer@o Z7 Z7 Q4
4 endo@c D8 D8 L1
5 chrono@k L1 L1 D8
第0-3行和第4-5行的id
值与其他行重叠,但重叠发生在不同的列上
我怎样才能:
df.apply()
向下移动行这将是输出(尽管不关心索引):
email id1 id2 id3
0 de@l Z7 Q4 Q4
4 endo@c D8 D8 L1
下面的代码片段便于重新编写
pd.DataFrame([
{'email':'de@l', 'id1':'Z7', 'id2':'Q4', 'id3':'Q4'},
{'email':'sco@g', 'id1':'Q4', 'id2':'Z7', 'id3':'Q4'},
{'email':'alpha@n', 'id1':'Q4', 'id2':'Z7', 'id3':'Z7'},
{'email':'numer@o', 'id1':'Z7', 'id2':'Z7', 'id3':'Q4'},
{'email':'endo@c', 'id1':'D8', 'id2':'D8', 'id3':'L1'},
{'email':'chrono@k','id1':'L1', 'id2':'L1', 'id3':'D8'},
])
您可以将^{} 与^{} 一起使用,然后我们创建一个布尔索引
想法是将具有} 中带有反转掩码的^{} 进行筛选:
id
值的列转换为称为frozensets的散列集,这样就可以通过^{列表理解的备选方案:
相关问题 更多 >
编程相关推荐