Pandas est l'un des packages d'analyse et de manipulation les plus précieux de Python.
Il propose des fonctionnalités telles que des structures de données personnalisées construites au-dessus de Python.
Cet article discutera de la conversion d'une colonne d'un type de données en un type int dans un pandas dataframe.
Configuration des pandas
Avant de plonger dans la façon d'effectuer l'opération de conversion, nous devons configurer des pandas dans notre environnement Python.
Si vous utilisez l'environnement de base dans l'interprète Anaconda, il y a de fortes chances que vous ayez installé des pandas.
Cependant, sur une installation python native, vous devrez l'installer manuellement.
Vous pouvez le faire en exécutant la commande:
$ pip install pandasSur Linux, courez
$ sudo pip3 installer pandasDans les environnements anaconda ou miniconda, installez des pandas avec conda.
$ Conda Installer PandasLes pandas créent un exemple de dataframe
Confirons un exemple de dataframe à des fins d'illustration dans ce tutoriel. Vous pouvez copier le code ci-dessous ou utiliser votre dataframe.
Importer des pandas en tant que PDUne fois le dataframe créé, nous pouvons vérifier les données.
Pandas afficher le type de colonne
Il est bon de savoir si le type existant peut être jeté en un INT avant de convertir une colonne d'un type en un INT.
Par exemple, tenter de convertir une colonne contenant des noms ne peut pas être converti en un int.
Nous pouvons afficher le type de dataframe à l'aide de la propriété DTYPES
Utilisez la syntaxe:
Trame de données.dtypesDans notre exemple de dataframe, nous pouvons obtenir les types de colonnes comme:
df.dtypesNous pouvons voir sur la sortie ci-dessus qu'aucune des colonnes ne contiennent un type int.
Pandas convertit la colonne de String en int.
Pour convertir une seule colonne en un INT, nous utilisons la fonction ASTYPE () et passons le type de données cible comme paramètre.
La syntaxe de fonction:
Trame de données.astype (dtype, copy = true, errors = 'relance')Dans notre exemple de dataframe, nous pouvons convertir la colonne d'ID en type int à l'aide de la fonction ASTYPE () comme indiqué dans le code ci-dessous:
df ['id'] = df ['id'].Astype (int)Le code ci-dessus spécifie la colonne «ID» comme objet cible. Nous passons ensuite un int en tant que type à la fonction Astype ().
Nous pouvons vérifier le nouveau type de données pour chaque colonne de DataFrame:
df.dtypesLa colonne ID a été convertie en un INT tandis que le reste reste inchangé.
Pandas convertit plusieurs colonnes en int
La fonction ASTYPE () nous permet de convertir plus d'une colonne et de les convertir en un type spécifique.
Par exemple, nous pouvons exécuter le code suivant pour convertir les colonnes ID et points en type int.
df [['id', 'Points']] = df [['id', 'Points']].Astype (int)Ici, nous spécifions plusieurs colonnes en utilisant la notation du support carré. Cela nous permet de convertir les colonnes en type de données spécifié dans la fonction ASTYPE ().
Si nous vérifions le type de colonne, nous devrions voir une sortie:
df.dtypesNous pouvons maintenant voir que la colonne ID et points a été convertie en type INT32.
Pandas convertit plusieurs colonnes en plusieurs types
La fonction ASTYPE () nous permet de spécifier une colonne et un type de cible en tant que dictionnaire.
Supposons que nous voulons convertir la colonne ID en int32 et la colonne de points en float64.
Nous pouvons exécuter le code suivant:
convert_to = "id": int, "points": floatDans le code ci-dessus, nous commençons par définir un dictionnaire détenant la colonne cible comme clé et le type cible comme valeur.
Nous utilisons ensuite la fonction ASTYPE () pour convertir les colonnes du dictionnaire en types.
La vérification des types de colonnes doit revenir:
df.dtypesNotez que la colonne ID est INT32 et que la colonne de points est de type float32.
Pandas convertit colonne en int - to_numeric ()
Pandas nous fournit également la fonction to_numeric (). Cette fonction nous permet de convertir une colonne en un type numérique.
La syntaxe de fonction est comme indiqué:
pandas.to_numeric (arg, errors = 'relance', downcast = non)Par exemple, pour convertir la colonne ID en numérique dans notre exemple de dataframe, nous pouvons exécuter:
df ['id'] = pd.to_numeric (df ['id'])Le code doit prendre la colonne ID et le convertir en un type int.
Pandas convertit les données de données au meilleur type de données possible
La fonction convert_dtypes () en pandas nous permet de convertir une fragmentation entière de données au type possible le plus proche possible.
La syntaxe de fonction est comme indiqué:
Trame de données.convert_dtypes (infér_objects = true, convert_string = true,Vous pouvez vérifier les documents dans la ressource ci-dessous:
https: // pandas.pydata.org / docs / référence / api / pandas.Trame de données.convert_dtypes.html
Par exemple, pour convertir notre exemple de données de données en type possible, nous pouvons s'exécuter:
df = df.convert_dtypes ()Si nous vérifions le type:
df.dtypesVous remarquerez que chaque colonne a été convertie en type approprié le plus proche. Par exemple, la fonction convertit les petits INTS en type INT32.
De même, la colonne des noms est convertie en type de chaîne car il conserve les valeurs de chaîne.
Enfin, comme la colonne de points contient des entiers plus grands, il est converti en un type INT64.
Conclusion
Dans cet article, nous avons donné des méthodes détaillées et des exemples de conversion d'un pandas dataframe d'un type à un autre.