Data Science

Maîtriser la Conversion de Types de Données avec Pandas

Spread the love

Pandas est une puissante bibliothèque Python pour la manipulation et l’analyse de données. La gestion des types de données est cruciale pour un traitement efficace des données. Cet article explore différentes méthodes pour modifier efficacement les types de données des colonnes dans vos DataFrames Pandas.

Table des matières

1. Conversion en types numériques avec pd.to_numeric()

La fonction pd.to_numeric() est idéale pour convertir des colonnes en types de données numériques (int, float). Elle est particulièrement utile lorsqu’on traite des colonnes contenant des représentations textuelles de nombres, souvent rencontrées lors de l’importation de données.


import pandas as pd

data = {'col1': ['1', '2', '3', '4', '5'], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)

df['col1'] = pd.to_numeric(df['col1'])
print(df.dtypes)

Le paramètre errors gère la façon dont les erreurs sont traitées :

  • 'coerce' : Les valeurs invalides deviennent NaN.
  • 'raise' : Lève une exception pour les valeurs invalides.
  • 'ignore' : Ignore les valeurs invalides.

data = {'col1': ['1', '2', 'a', '4', '5']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'], errors='coerce')
print(df)

2. Conversion de type flexible avec astype()

La méthode astype() fournit une approche générale pour changer les types de données. Vous pouvez convertir en pratiquement n’importe quel type supporté (int, float, str, bool, datetime, etc.).


data = {'col1': [1, 2, 3, 4, 5], 'col2': [True, False, True, False, True]}
df = pd.DataFrame(data)

df['col1'] = df['col1'].astype(str)
df['col2'] = df['col2'].astype(int)
print(df.dtypes)

Attention : La conversion de type peut entraîner une perte de données (par exemple, troncature des décimales lors de la conversion de float en int).

3. Inférerence de type intelligente avec infer_objects()

La méthode infer_objects() est utile pour les DataFrames avec des types de données mixtes dans les colonnes « objet ». Elle tente d’inférer le type le plus approprié pour chaque colonne.


data = {'col1': ['1', 2, '3.14', 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
df = df.infer_objects()
print(df.dtypes)

Remarque : Des données incohérentes peuvent empêcher une inférence de type réussie.

4. Bonnes pratiques pour la conversion de type de données

Inspectez toujours vos données avant et après la conversion pour vérifier les modifications et éviter les résultats inattendus. Envisagez d’utiliser la méthode .info() pour vérifier les types de données et les valeurs manquantes. Gérez les erreurs potentielles avec élégance en utilisant le paramètre errors dans pd.to_numeric() ou en prétraitant vos données pour supprimer ou remplacer les valeurs problématiques.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *