我正在尝试为数据框中的所有列过滤相同的值:
这是我的数据框:
df=pd.DataFrame({'A':['valid','invalid','valid'],'B':['valid','valid','valid'],'C':['valid','invalid','invalid']})
我只需要只有“有效”值的记录
我尝试过的是:
udf=(lambda x: x=='valid')
df1=df.applymap(udf)
df1
A B C
0 True True True
1 False True False
2 True True False
再次我不知道必须过滤仅包含True的记录。我该怎么做?
Actual df output
A B C
0 valid valid valid
1 invalid valid invalid
2 valid valid invalid
Expected ouput
A B C
0 valid valid valid
有人可以帮我吗?
答案 0 :(得分:2)
以DataFrame.eq
比较所有值,并以DataFrame.all
得到具有所有值True
s的行:
df1 = df[df.eq('valid').all(axis=1)]
#same like
#df1 = df[(df == 'valid').all(axis=1)]
print (df1)
A B C
0 valid valid valid
详细信息:
print (df.eq('valid'))
A B C
0 True True True
1 False True False
2 True True False
print (df.eq('valid').all(axis=1))
0 True
1 False
2 False
dtype: bool