2017-06-29 2 views
-2

Disons que je l'ai remplacé toutes les valeurs nulles dans ma trame de données avec une chaîne ('Non disponible ') en utilisant df.fillna (' indisponible '). Je dois maintenant vérifier que le nombre de 'Indisponible' correspond à celui des valeurs nulles. Il y a beaucoup de colonnes et de lignes, donc je ne veux pas spécifier un nom de colonne, etc. Est-il possible trouver le nombre de tous les « indisponible » dans toutes les colonnes sans utiliser pour les boucles? Si vous utilisez des boucles pour parcourir toutes les colonnes, je suis confronté à un problème lorsque la colonne contient un type numérique. Cela n'a pas de sens de faire un value_count car je suis intéressé à connaître uniquement le nombre 'Indisponible' et non le nombre de toutes les valeurs. Plus encore, je pense qu'il devrait y avoir un moyen simple de faire une telle chose que je puisse manquer.pandas géants dataframe: Comment puis-je trouver la valeur spécifique (dire « Non disponible ») dans toutes les colonnes (de numérique numérique et non) de la dataframe

+0

'(df == 'Non disponible'). Sum(). Sum()'? – Zero

Répondre

0

Vous pouvez probablement faire quelque chose comme ceci:

(df.astype(str)=='Unavailable').values.sum() 
+0

Exactement ce que je cherchais. Merci beaucoup! –

0

si vous voulez avoir un aperçu de toutes vos valeurs pd.melt() et pd.groupby() pourraient vous aider à explorer les données

par exemple:

foo     bar    foobar 
0 Unavailable  asd    asd 
1 asd    Unavailable  asd 
2 asd    Unavailable  asd 
3 asd    Unavailable  asd 
4 Unavailable  asd    asd 
5 asd    asd    asd 
6 Unavailable  asd    Unavailable 
7 asd    asd    Unavailable 
8 asd    asd    asd 

à l'état fondu et le groupe df

df_1 = pd.melt(df, value_vars=['foo ', 'bar ', 'foobar']).groupby("value").count() 
+0

Merci pour votre réponse. Mais dans mon cas, je ne veux pas mentionner explicitement les colonnes (puisque je veux que la valeur soit recherchée) –