NaN (NaN), qui signifie "Not a Number", est une valeur spéciale en virgule flottante en Python (et de nombreux autres langages de programmation), qui sert à 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 de NaN dans 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') False 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 valeurs 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.
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.
Manipulation du NaN
NaN dans 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,
decimal=",")
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(method='ffill') respectivement fillna(method='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.
Découvrez nos Catégorie Python avec des articles utiles autour de ce thème.
