web-dev-qa-db-fra.com

Python, Pandas: ne renvoie que les lignes qui ont des valeurs manquantes

Tout en travaillant dans les pandas en python ...

Je travaille avec un ensemble de données qui contient des valeurs manquantes et j'aimerais renvoyer une image contenant uniquement les lignes contenant des données manquantes. Y a-t-il une bonne façon de faire cela?

(Ma méthode actuelle pour ce faire est inefficace: "cherchez quel index ne figure pas dans le cadre de données sans les valeurs manquantes, puis créez un df à partir de ces index.")

28
user2487726

Je crois que cela devrait le faire:

null_data = df[df.isnull().any(axis=1)]
56
metersk

Semblable à la réponse de metresk,

null_data = df[np.logical_or.reduce(df.isnull(), axis=1)]

Tester

n = 2
df = pd.DataFrame({'a':np.tile([0,1,2,3,4,np.nan],n),
                   'b':np.tile([0,1,2,3,np.nan,5],n)})

x = df[np.logical_or.reduce(df.isnull(),axis=1)]
y = df[df.isnull().any(axis=1)]
x.equals(y)
0
user3226167