Хорошо, попробуйте это ...
import pandas as pd
import numpy as np
data1={'Name':['Tom',np.NaN,'Mary','Jane'],'Age':[20,np.NaN,40,30],'Pay':[np.NaN,np.NaN,20,25]}
data2={'Name':['Tom','Bob','Mary'],'Age':[40,30,20]}
df1=pd.DataFrame.from_records(data1)
Проверьте df
df1
Age Name Pay
0 20.0 Tom NaN
1 NaN NaN NaN
2 40.0 Mary 20.0
3 30.0 Jane 25.0
запись с индексом 1 имеет 3 пропущенных значения ...
Заменить и сделать пропущенные значения Нет
df1 = df1.replace({pd.np.nan: None})
Теперь напишите функцию для подсчета пропущенных значений в строке .... и для создания списка
def count_na(lst):
missing = [n for n in lst if not n]
return len(missing)
missing_data=[]
for index,n in df1.iterrows():
missing_data.append(count_na(list(n)))
Используйте этот список какновый столбец в кадре данных
df1['missing']=missing_data
df1 должен выглядеть следующим образом
Age Name Pay missing
0 20 Том Нет 1 1 Нет Нет Нет 3 2 40 Мэри 20 0 3 30 Джейн 25 0
Таким образом, фильтрация становится легкой ....
# Now only take records with <2 missing
df1[df1.missing<2]
Надеюсь, это поможет ...