Maison >développement back-end >Tutoriel Python >Comment gérer les valeurs NaN lors de la conversion d'une colonne Pandas en entier ?

Comment gérer les valeurs NaN lors de la conversion d'une colonne Pandas en entier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 17:44:02923parcourir

How to Handle NaN Values When Converting a Pandas Column to Integer?

Gestion des valeurs NaN lors de la conversion d'une colonne Pandas en entier

Lorsque vous travaillez avec des trames de données Pandas, vous pouvez rencontrer des situations dans lesquelles vous devez convertir une colonne contenant des valeurs NaN au type de données entier. Cependant, cette conversion peut entraîner des erreurs, car les tableaux d'entiers ne peuvent pas gérer les valeurs manquantes par défaut.

Approches de gestion des erreurs

Vous avez essayé deux approches pour convertir l'identifiant ' en entier, mais les deux ont entraîné des erreurs :

  • Casting lors de la lecture CSV : erreur : colonne Integer a des valeurs NA
  • Conversion après la lecture CSV : erreur : impossible de convertir NA en entier

Solution : type de données entier nul

Version Pandas 0.24 introduit le concept de types de données entiers nullables. Cette fonctionnalité permet aux tableaux d'entiers de contenir des valeurs manquantes. Pour utiliser cette approche :

import numpy as np

# Create a nullable integer array
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())

# Create a Pandas Series from the array
series = pd.Series(arr)

La série résultante aura un type 'Int64' et autorisera les valeurs NaN :

>>> series
0      1
1      2
2    NaN
dtype: Int64

Conversion de la colonne Pandas

Pour convertir une colonne Pandas en un entier nullable dtype :

df['myCol'] = df['myCol'].astype('Int64')

Cela convertira la colonne « myCol » en un type de données entier avec les valeurs manquantes représentées par NaN.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn