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
4 Réponses :
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
Salut Tawab_Shakeel, merci pour la réponse. ça marche bien
super @GovindaRaju si vous le trouvez utile de voter ou de l'approuver
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} ")
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']]))
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))
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.
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'])
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
votre réponse n'est pas claire, si vous faites
print (len (df, columns) -1)cela vous donnera 4Les
colonnesdanspd.DataFrame ()font référence aux libellés de chaque colonne. Alors essayez-vous de filtrer les colonnes par nom?