Convertir en entier (astype(int))
Fonctions :
-
astype()
La fonction astype() est utilisée pour convertir le type de données d'un objet pandas (comme une Series ou un DataFrame) en un autre type, comme un entier (int) ou un flottant (float). Elle est particulièrement utile pour les opérations qui nécessitent un certain type de données pour les calculs.
Importation :
import pandas as pd
Attributs :
Paramètre Description dtype
Le type de données vers lequel convertir les valeurs. Il peut s'agir d'un type Python classique ( int
,float
,str
), d'un type spécifique à NumPy (int32
,float64
, etc.) ou d'un dictionnaire pour une conversion multiple colonne par colonne.copy
(facultatif) Si True
(par défaut), retourne une copie du DataFrame ou Series avec les nouveaux types. SiFalse
, tente de faire la conversion sur place, ce qui peut réduire l'utilisation mémoire mais peut aussi causer des effets de bord.errors
(facultatif) Détermine le comportement en cas d'erreur de conversion : 'raise'
(par défaut) : soulève une exception si une conversion échoue.'ignore'
: ignore les erreurs et retourne les données originales sans modification.
Exemple de code :
import pandas as pd # Création d'un DataFrame avec des types de données initiaux df = pd.DataFrame({ 'age': ['25', '30', '45'], 'revenu': [35000, 42000, 60000] }) print("Types initiaux :") print(df.dtypes) print() # Conversion de 'age' en entier df['age'] = df['age'].astype(int) # Conversion de 'revenu' en float df['revenu'] = df['revenu'].astype(float) print("Types après astype() :") print(df.dtypes) print() print("DataFrame final :") print(df)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour simplifier son utilisation dans le code.Créer une Series contenant des chaînes de caractères
La ligne
data = pd.Series(['1', '2', '3.5', '4.0'])
crée une variabledata
qui contient une Series pandas composée de chaînes de caractères représentant des nombres. Ces chaînes incluent des entiers ('1'
,'2'
) et des nombres à virgule flottante exprimés avec un point ('3.5'
,'4.0'
). À ce stade, les données sont toujours considérées comme des chaînes de caractères.Convertir la Series en type entier (int)
La tentative de conversion avec
data.astype(int)
utilise la méthode astype() pour transformer chaque élément de la Series en entier (int
). Cependant, cette opération échoue car certaines valeurs ne sont pas directement convertibles en entiers (comme'3.5'
ou'4.0'
, qui sont des décimaux). Une erreur de typeValueError
est donc levée, indiquant qu’une ou plusieurs valeurs ne peuvent pas être converties.Convertir la Series en type flottant (float)
La ligne
data.astype(float)
applique la méthode astype() pour convertir tous les éléments de la Series en nombres à virgule flottante (float
). Cette fois, la conversion fonctionne sans erreur, car toutes les chaînes de caractères dans la Series représentent des valeurs numériques compatibles avec le formatfloat
(comme'1.0'
,'3.5'
, etc.).Afficher les résultats convertis
La fonction
print()
peut être utilisée pour afficher le contenu des Series après conversion. Cela permet de visualiser comment les types ont été modifiés et de vérifier que la transformation a bien été effectuée.