Фильтр кадра данных, если значение существует, возвращают все - PullRequest
1 голос
/ 16 мая 2019

Я хочу отфильтровать DataFrame, если значение совпадает, иначе возвращаются все строки. Когда я пытаюсь фильтровать, используя .isin в коде, он возвращает пустой DataFrame.

My DataFrame:df
a_column   b_column
  1          3
  2          4 
  3          5
  4          9

Если я попытаюсь отфильтровать с помощью таких кодов, как

 df=df[df['b_column'].isin([7])]
 df=df[df['b_column']==([7])]

Возвращает пустой DataFrame, То, что я хочу в качестве вывода, если я фильтрую b_column с 7, это

My DataFrame:df
a_column   b_column
  1          3
  2          4 
  3          5
  4          9

Заранее спасибо.

1 Ответ

1 голос
/ 16 мая 2019

Вы можете объединить скалярное логическое значение по | для побитового OR с помощью оператора if-else для проверки, если хотя бы один True по Series.any:

m = df['b_column'].isin([7])
b = False if m.any() else True
df1 = df[m | b]
print (df1)
   a_column  b_column
0         1         3
1         2         4
2         3         5
3         4         9

m = df['b_column'].isin([3,4])
b = False if m.any() else True
df1 = df[m | b]
print (df1)
   a_column  b_column
0         1         3
1         2         4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...