Maison > développement back-end > Tutoriel Python > Comment puis-je convertir les colonnes Pandas avec des valeurs manquantes en types de données entiers ?

Comment puis-je convertir les colonnes Pandas avec des valeurs manquantes en types de données entiers ?

Patricia Arquette
Libérer: 2024-11-22 02:35:16
original
394 Les gens l'ont consulté

How Can I Convert Pandas Columns with Missing Values to Integer Data Types?

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
Copier après la connexion

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
Copier après la connexion

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é :

  1. Importez la classe IntegerArray depuis Pandas.
from pandas.arrays import IntegerArray
Copier après la connexion
  1. Créez un objet IntegerArray avec le type souhaité, dans ce cas, Int64 .
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
Copier après la connexion
  1. Convertir le 'id' vers un IntegerArray à l'aide de astype().
df['id'] = df['id'].astype('Int64')
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal