以下是我要对数据框做的事情: 1.如果每个id有两行,请选择与Col1和Col2匹配的行。 2.如果id只有一行,则选择该行,即使Col1和Col2不匹配。
df = df[df['Col1'] == df['Col2']]
如果有人能向我解释如何实现这一目标,我将非常感激! 谢谢。
答案 0 :(得分:2)
假设id
列中只有长度为2的唯一且重复的值。
然后使用duplicated
选择所有重复项~
进行反向掩码 - 选择所有唯一行:
m1 = df['Col1'] == df['Col2']
m2 = df['id'].duplicated(keep=False)
df = df[(m1 & m2) | ~m2]
print (df)
Col1 Col2 Col3 id
0 Pizza Pizza 100 1
3 Pizza Pizza 300 2
4 Ramen Ramen 230 3
6 Ramen Pizza 13 4
8 Pizza Pizza 13 5
10 Ramen Ramen 30 6
11 Pizza Ramen 45 7