1
votes

obtenir un nombre de colonnes sans "NaN"

Comment compter le nombre de colonnes sans NaN ?

import pandas as pd
df = pd.DataFrame(columns = ['name', 'age', 'favorite_color', 'grade','NaN'])
print(len(df.columns))

Sortie: 5

Mais recherche Sortie: 4


2 commentaires

votre réponse n'est pas claire, si vous faites print (len (df, columns) -1) cela vous donnera 4


Les colonnes dans pd.DataFrame () font référence aux libellés de chaque colonne. Alors essayez-vous de filtrer les colonnes par nom?


4 Réponses :


1
votes

Essayez ceci

res = [x for x in df.columns if str(x) not in ['nan','NaN','NAN'] ]
print(res)
#['name', 'age', 'favorite_color', 'grade']
print(len(res)
#4 



2 commentaires

Salut Tawab_Shakeel, merci pour la réponse. ça marche bien


super @GovindaRaju si vous le trouvez utile de voter ou de l'approuver



0
votes

Utilisez python de base pour obtenir le résultat: -

The length of columns without NaN values is  4 

Sortie:

import pandas as pd
df = pd.DataFrame(columns = ['name', 'age', 'favorite_color', 'grade','NaN'])
col = df.columns

count = 0
for var in col:
    if var not in  ['NaN', 'nan']:
        count+=1
print(f"The length of columns without NaN values is\t {count} ")


2 commentaires

Salut Rahul Merci pour la réponse. mais à la recherche d'un code court


@GovindaRaju vous pouvez écrire tout le code sur une seule ligne sous la forme print (len ([var for var in df.columns if var not in ['NaN', 'nan']]))



0
votes

si vous voulez supprimer les colonnes dont le nom est respectivement np.nan ou NaN; essayez ceci:

# drop the columns where at least one element is NaN:
df.dropna(axis=1)

# drop the columns where all elements are NaN:
df.dropna(axis=1, how='all')

De l'autre côté, vous voudrez peut-être supprimer les colonnes qui incluent Nan:

df = df.loc[:, df.columns.notnull()]
df = df.loc[:, (filter(lambda x: x != 'NaN',df.columns))]
print(len(df.columns))


2 commentaires

Bonjour Nadjar, merci pour votre réponse. Mais à la recherche du compte pour la colonne


je vous en prie. vous pouvez maintenant imprimer après avoir appliqué le filtre. vérifiez-le, s'il vous plaît.



2
votes

Comment compter le nombre de colonnes sans NaN

Quelques méthodes supplémentaires sont:

Méthode1 :

len(set(df.columns)-{'NaN'})

Méthode2 pd.Index.difference code > :

len(df.columns.difference(['NaN']))

Method3 set : (presque identique à 2)

len(df.columns ^ ['NaN'])

5 commentaires

Salut Anky. merci de partager ceci. c'est très utile.


Salut et s'il y a "np.null" au lieu de {'Nan'}


@GovindaRaju pouvez-vous mettre à jour l'exemple dans la question? pour plus de clarté


a b c d f g # Groupe1 1 1 3 6 8 1 2 2 4 7 9 2 3 3 5 8 0 2 a b c d #Groupe 2 1 3 3 3 2 3 4 3 3 4 4 3 Salut Supposons le tableau ci-dessus comme importation à partir du fichier csv. une fois son importation automatiquement des cellules vides comme remplacé "NaN" car nous savons que, si je divise cela en groupe1 et groupe2, si je veux prendre le nombre de colonnes de Group2, il affiche 6 au lieu de la bonne réponse 4


Veuillez mettre à jour la question avec un formatage approprié. les données dans les commentaires ne sont pas lisibles @GovindaRaju