J'ai des données, dans lesquelles je veux trouver le nombre de NaN
, de sorte que si elle est inférieure à un certain seuil, je vais supprimer ces colonnes. J'ai regardé, mais je n'ai trouvé aucune fonction pour cela. il y en a value_counts
, mais ce serait lent pour moi, car la plupart des valeurs sont distinctes et je ne veux que compter NaN
.
464
df
vous pouvez utiliserdf.isnull().sum().sum()
.sum(axis=0)
qui est le comportement par défaut. Et pour obtenir rowsums,.sum(axis=1)
.df.isnull().values.sum()
df['column_name'].isna().sum()
fonctionne également si quelqu'un se demande.Vous pouvez soustraire la longueur totale du nombre de valeurs non nan:
Vous devez le chronométrer sur vos données. Pour les petites séries, la vitesse a été multipliée par 3 par rapport à la
isnull
solution.la source
isnull
est déjà deux fois plus rapide que cela.Supposons que
df
c'est un DataFrame pandas.Alors,
Cela donnera le nombre de valeurs NaN dans chaque colonne.
Si vous avez besoin de valeurs NaN dans chaque ligne,
la source
Sur la base de la réponse la plus votée, nous pouvons facilement définir une fonction qui nous donne un cadre de données pour prévisualiser les valeurs manquantes et le% de valeurs manquantes dans chaque colonne:
la source
Depuis pandas 0.14.1 ma suggestion ici d'avoir un argument mot-clé dans la méthode value_counts a été implémentée:
la source
si ses valeurs nan juste en comptant dans une colonne de pandas voici un moyen rapide
la source
si vous utilisez Jupyter Notebook, que diriez-vous de ....
ou
ou y a-t-il quelque part des NaN dans les données, si oui, où?
la source
Ce qui suit imprimera toutes les colonnes Nan dans l'ordre décroissant.
ou
Ce qui suit imprimera les 15 premières colonnes Nan dans l'ordre décroissant.
la source
Vous pouvez utiliser la fonction suivante, qui vous donnera une sortie dans Dataframe
Copiez et collez simplement la fonction suivante et appelez-la en passant votre pandas Dataframe
Production
Si vous voulez rester simple, vous pouvez utiliser la fonction suivante pour obtenir les valeurs manquantes en%
la source
Pour compter les zéros:
Pour compter NaN:
ou
la source
Veuillez utiliser ci-dessous pour le nombre de colonnes particulier
la source
Vous pouvez utiliser la méthode value_counts et imprimer les valeurs de np.nan
la source
s.value_counts(dropna = False)
Ça fera l'affaire.
la source
Voici le code pour compter les
Null
valeurs par colonne:la source
Il y a un bel article Dzone de juillet 2017 qui détaille diverses façons de résumer les valeurs NaN. Découvrez-le ici .
L'article que j'ai cité fournit une valeur supplémentaire en: (1) montrant un moyen de compter et d'afficher les nombres de NaN pour chaque colonne afin que l'on puisse facilement décider de supprimer ou non ces colonnes et (2) de montrer un moyen de sélectionner ces lignes dans spécifiques qui ont des NaN afin qu'ils puissent être sélectivement rejetés ou imputés.
Voici un exemple rapide pour démontrer l'utilité de l'approche - avec seulement quelques colonnes, son utilité n'est peut-être pas évidente mais je l'ai trouvée utile pour des trames de données plus grandes.
la source
Une autre option simple qui n'est pas encore suggérée, pour ne compter que les NaN, serait d'ajouter la forme pour renvoyer le nombre de lignes avec NaN.
la source
df.isnull (). sum () donnera la somme des valeurs manquantes par colonne.
Si vous voulez connaître la somme des valeurs manquantes dans une colonne particulière, le code suivant fonctionnera df.column.isnull (). Sum ()
la source
basé sur la réponse qui a été donnée et quelques améliorations c'est mon approche
la source
df.apply(lambda x: x.value_counts(dropna=False)[np.nan]/x.size*100)
Dans le cas où vous devez obtenir les chiffres non-NA (non-None) et NA (None) pour différents groupes, retirés par groupby:
Cela renvoie le nombre de non-NA, NA et le nombre total d'entrées par groupe.
la source
J'ai utilisé la solution proposée par @sushmit dans mon code.
Une variation possible de la même chose peut également être
L'avantage est qu'il renvoie désormais le résultat pour chacune des colonnes du df.
la source
Donne en sortie:
la source
Supposons que vous souhaitiez obtenir le nombre de valeurs manquantes (NaN) dans une colonne (série) appelée prix dans une trame de données appelée avis
Pour obtenir les valeurs manquantes, avec n_missing_prices comme variable, faites simplement
sum est la méthode clé ici, j'essayais d'utiliser count avant de réaliser que sum était la bonne méthode à utiliser dans ce contexte
la source
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.count.html#pandas.Series.count
Nombre de retours d'observations non NA / nulles dans la série
la source
Pour votre tâche, vous pouvez utiliser pandas.DataFrame.dropna ( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html ):
Avec le paramètre Thresh, vous pouvez déclarer le nombre maximal de valeurs NaN pour toutes les colonnes dans DataFrame.
Sorties de code:
la source