фильтрация столбцов с одинаковыми значениями в фрейме данных - Python - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь отфильтровать все столбцы в кадре данных на одно и то же значение:

Это мой кадр данных:

df=pd.DataFrame({'A':['valid','invalid','valid'],'B':['valid','valid','valid'],'C':['valid','invalid','invalid']})

Я хочу только те записи, которые имеют только значение 'valid '

То, что я пробовал, было:

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

кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 25 марта 2019

Сравните все значения по DataFrame.eq и получите строки со всеми значениями True s по DataFrame.all:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...