NaN Python - Comment utiliser les valeurs NaN dans Python

NaN, qui signifie "Not a Number", est une valeur spéciale en virgule flottante en Python (et dans de nombreux autres langages de programmation), utilisée pour représenter des valeurs indéfinies ou non représentables, comme le résultat de 0/0 ou la racine carrée d'un nombre négatif.

Voici des points importants à connaître sur NaN à connaître en Python :

Représentation en Python

En Python, on peut représenter NaN par float('nan') ou np.nan de la bibliothèque numpy, ou aussi math.nan qui est également disponible à partir de la bibliothèque math

NaN est égal à rien

Cela s'inclut lui-même. Par conséquent, il y a float('nan') == float('nan') Faux de retour. Pour vérifier qu'une valeur NaN est, vous pouvez utiliser la fonction math.isnan() ou numpy.isnan() si vous travaillez avec des tableaux numpy.

Traitement des NaN-lors du traitement des données

Lors du traitement des données, notamment avec les DataFrames de la librairie Pandas ou les tableaux de la librairie Numpy, vous devez souvent rencontrer des valeurs NaN. Elles représentent des données manquantes ou endommagées. Il y a plusieurs façons de les traiter - vous pouvez par exemple supprimer entièrement les lignes ou les colonnes qui contiennent des valeurs NaN- ou bien remplacer les valeurs NaN par une autre valeur plus spécifique, comme par exemple la moyenne ou la médiane des données de la colonne en question, en utilisant la méthode fillna() fournie par la librairie Pandas pour résoudre de tels problèmes.

NaN dans les opérations mathématiques

Toute opération mathématique avec NaN donne NaN. Par exemple, il y a 5 + float('nan') float('nan') en arrière.

NaN et None sont différents

NaN est une valeur numérique utilisée spécifiquement dans des contextes mathématiques et numériques, tandis que None est généralement utilisé en Python pour représenter l'absence d'une valeur.

Voici un exemple de la façon dont on peut NaN utilisé dans Python :

Cliquez sur le bouton ci-dessous pour télécharger le contenu de trinket.io.

Charger le contenu

La compréhension et la manipulation correcte des NaN-est très important pour l'analyse des données et d'autres tâches de calcul scientifique.


Excursion - Utilisation du NaN

nan' en Python

Il est important de savoir que Python, même sans utiliser Pandas, connaît les valeurs NaN. Nous pouvons les utiliser en utilisant float() créer :

n1 = float("nan")
n2 = float("Nan")
n3 = float("NaN")
n4 = float("NAN")
print(n1, n2, n3, n4)
print(type(n1))

En outre nan depuis Python 3.5, fait partie du math-module :

import math
n1 = math.nan
print(n1)
print(math.isnan(n1))

Les comparaisons avec les valeurs "NaN" et les valeurs numériques régulières doivent être évitées, car elles peuvent entraîner des problèmes :

print(n1 == n2)
print(n1 == 0)
print(n1 == 100)
print(n2 < 0)

Utilisation de NaN dans les pandas

Dans Pandas, il existe différentes méthodes pour gérer les valeurs de NaN. Dans un scénario hypothétique où nous évaluons un fichier de mesures de température contenant des valeurs de NaN isolées, nous pourrions utiliser la fonction read_csv pour lire les données :

import pandas as pd
df = pd.read_csv("data1/temperatures.csv",
                 sep=" ;",
                 index_col=0,
                 décimal=",")
print(df.head())

Dans ce DataFrame, nous pourrions alors calculer les températures moyennes et les ajouter comme nouvelle colonne :

average_temp_series = df.mean(axis=1)
df = df.assign(temperature=average_temp_series)

Si des valeurs de NaN sont présentes, elles pourraient fausser le résultat. Il est donc important de les utiliser à bon escient. Une possibilité serait d'utiliser les dropna() Méthode permettant de supprimer toutes les lignes dans lesquelles apparaissent des valeurs NaN :

df = df.dropna()

D'autres méthodes permettent de traiter les données manquantes, par exemple en les remplaçant par un nombre défini ou en les remplissant avec des valeurs en amont ou en aval (fillna(méthode='ffill') respectivement fillna(méthode='bfill')). Toutefois, cela dépend fortement du contexte et des données spécifiques.

Conclusion

La manipulation de NaN-La gestion des valeurs numériques est une partie essentielle du travail avec les données numériques dans Python. Ces valeurs représentent souvent des données manquantes ou indéfinies et leur manipulation correcte est essentielle pour obtenir des résultats précis et significatifs.

Sujets complémentaires

Maintenant que vous avez acquis une compréhension de base de NaNSi vous avez des connaissances approfondies sur les valeurs de l'espace-temps en Python, vous pouvez aller plus loin en abordant les thèmes suivants :

  • Gestion des erreurs en Python : apprenez à gérer les erreurs et les exceptions dans votre code.
  • Nettoyage des données avec Pandas : découvrez les méthodes de nettoyage et de préparation des données avec la puissante bibliothèque Pandas.
  • Techniques avancées de Numpy : Approfondissez votre compréhension de la bibliothèque Numpy et de son application aux données numériques.
"
"
Avatar de Florian Zyprian

Derniers articles