仅当另一个列值为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 (无需进行比较,那么就没错了)
Example3:
isValid value1 value2
True 50 50
False 19 19
True 48 40
输出应为 False (因为记录3的value1和value2不同)
答案 0 :(得分:5)
我会做
let str = 'Hi how are you';
let reverse = str
.split("")
.reverse()
.join("")
.split(" ")
.reverse()
.join(" ")
);
答案 1 :(得分:3)
这是一种方法:
df1[df1['isValid']].set_index('isValid').nunique(1).eq(1).all().all()
#True
答案 2 :(得分:1)
这是一个简单的函数,处理所有False为'isValid'的情况,仍然返回单个布尔True
def my_comp(df):
u = df[df.isValid]
if u.empty:
return True
else:
return u['value1'].eq(u['value2']).all()
my_comp(df1)
#True
my_comp(df2)
#True
my_comp(df3)
#False