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. Si False, 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)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, renommée ici en pd 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 variable data 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 type ValueError 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 format float (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.