Lancement / Blog / Python / NaN Python - Utiliser correctement les valeurs NaN dans Python

NaN Python - Utiliser correctement les valeurs NaN dans Python

Résumer avec ChatGPT

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.

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.

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.

Avez-vous trouvé cette page utile ?

Merci beaucoup pour vos commentaires !

Voulez-vous me donner un feedback ? (anonyme)

Nous développons des logiciels d'intelligence artificielle pour les entreprises et renonçons délibérément aux bannières publicitaires gênantes. Par le biais de nos articles, nous documentons des thèmes qui nous préoccupent, nous intéressent et financent également notre pain quotidien.

Comme nos contenus sont gratuits, vos commentaires sont nos félicitations.

Chaque auteur lit personnellement vos commentaires anonymes, même si les IA pourraient les automatiser, et intègre directement les suggestions constructives dans la prochaine révision ou les utilise comme source d'inspiration pour le prochain article.



    • Florian Zyprian
      (auteur)

      En tant que CTO chez Helm & Nagel GmbH, l'entreprise derrière la marque Konfuzio.

    fr_FRFR