仅当另一个列值为True时,才如何比较两个(或更多列)值。理想情况下,输出将只是True(如果一切都正确匹配),否则为False。
这样的事情:df['value1'].equals(df['value2'])
但仅当df ['isValid']为true时。
抱歉,如果这是一个愚蠢的问题,我是熊猫的初学者...
考虑以下数据框:
范例1:
isValid value1 value2 True 50 50 True 19 19 False 48 40
输出应为:True(记录一和两次匹配),并且“ isValid”列为True(这意味着我们必须比较值)
范例2:
isValid value1 value2 False 50 50 False 19 19 False 48 40
输出应为True(无需进行比较,那么就没错了)
范例3:
isValid value1 value2 True 50 50 False 19 19 True 48 40
输出应为False(因为记录3的value1和value2不同)
我会做
df.eval('value1==value2')[df.isValid].all()