Conversion des colonnes Pandas avec des valeurs manquantes en entiers
Lorsque vous traitez des trames de données Pandas, il est souvent nécessaire de spécifier le type de données de certaines colonnes. Cependant, si une colonne contient des valeurs manquantes ou vides (NaN), sa conversion en un type entier tel que « int » peut présenter des défis.
Problème rencontré :
Pour illustrer le problème, supposons que nous ayons une trame de données Pandas lue à partir d'un fichier CSV, avec une colonne nommée « id » qui contient des NaN. Cependant, nous devons spécifier la colonne « id » comme un type entier.
Messages d'erreur :
Lors de la tentative de conversion directe de la colonne « id » en un nombre entier lors de la lecture du fichier CSV, nous rencontrons l'erreur suivante :
df= pd.read_csv("data.csv", dtype={'id': int}) error: Integer column has NA values
Alternativement, si nous essayons de convertir le type de colonne après avoir lu le fichier CSV, nous obtenons :
df= pd.read_csv("data.csv") df[['id']] = df[['id']].astype(int) error: Cannot convert NA to integer
Solution :
À partir de la version 0.24 de Pandas, il est possible de représenter des données entières avec des valeurs manquantes en utilisant Nullable Integer Types de données, implémentés avec IntegerArray. Pour utiliser cette fonctionnalité :
from pandas.arrays import IntegerArray
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
df['id'] = df['id'].astype('Int64')
En utilisant des types de données entiers nuls, Pandas peut gérer les colonnes entières avec des valeurs manquantes tout en conservant leur type de données prévu.
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!