isnull с несколькими указанными столбцами - PullRequest
0 голосов
/ 07 ноября 2019

Учитывая следующий фрейм данных:

import pandas as pd
import numpy as np

df = pd.DataFrame({'a':[np.nan,'a','b'],'b':[1,np.nan,3],'c':['x','y','z']})

     a    b  c
0  NaN  1.0  x
1    a  NaN  y
2    b  3.0  z

Я хотел бы выбрать все строки, где оба столбца 'a' и 'b' равны нулю, поэтому я получаю это:

     a    b  c
2    b  3.0  z

Я знаю, что могу сделать это:

df.loc[(pd.isnull(df['a'])) & (pd.isnull(df['b']))]

... но мои фактические данные содержат много конкретных столбцов, которые мне нужно использовать с isnull. Есть ли более эффективный способ сделать это, когда я могу указать столбцы «a» и «b» в списке как-то (например)?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2019

Мы можем проверить dropna

df.dropna(subset=['a','b'],thresh=2)
Out[96]: 
   a    b  c
2  b  3.0  z
0 голосов
/ 07 ноября 2019

Используйте boolean indexing с DataFrame.notnull или DataFrame.isnull + DataFrame.all:

my_list_tocheck=['a','b']
df[df[my_list_tocheck].notnull().all(axis=1)]

Выход

   a    b  c
2  b  3.0  z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...