Appliquer une transformation uniquement sur certaines colonnes

Appliquer une transformation uniquement sur certaines colonnes consiste à sélectionner un sous-ensemble spécifique de colonnes d’un DataFrame et d’appliquer une fonction de transformation (comme la normalisation, la standardisation, ou toute autre modification) uniquement sur celles-ci, sans affecter les autres colonnes. Cela permet de contrôler précisément quelles données doivent être modifiées, tout en préservant l’intégrité des autres variables. Par exemple, cela peut être utile lorsque certaines colonnes nécessitent une préparation spécifique avant d’être utilisées dans un modèle de machine learning, mais que d’autres colonnes doivent rester inchangées.

Fonctions :

  • Concept d'application de transformation sur des colonnes spécifiques

    Dans les jeux de données réels, il est courant de vouloir appliquer une transformation (comme la standardisation ou la normalisation) uniquement sur certaines colonnes plutôt que sur l'ensemble du DataFrame. Cela peut être nécessaire lorsque seules certaines variables sont pertinentes pour la transformation, ou lorsque d'autres colonnes ne sont pas numériques et nécessitent un traitement différent. La méthode fit_transform() permet d'ajuster un transformateur (comme un StandardScaler ou un MinMaxScaler) aux données, puis de transformer les colonnes sélectionnées en fonction de cet ajustement. Cette approche est utile pour appliquer une transformation uniquement sur des colonnes spécifiques d'un DataFrame sans affecter les autres.

    Importation :

    from sklearn.preprocessing import StandardScaler

    Exemple de code :

    import pandas as pd
    from sklearn.preprocessing import StandardScaler
    
    # Exemple de DataFrame
    data = {'col1': [10, 20, 30, 40], 'col2': [5, 15, 25, 35], 'col3': ['A', 'B', 'C', 'D']}
    df = pd.DataFrame(data)
    
    # Initialisation du StandardScaler
    scaler = StandardScaler()
    
    # Appliquer la transformation uniquement sur les colonnes 'col1' et 'col2'
    df[['col1', 'col2']] = scaler.fit_transform(df[['col1', 'col2']])
    
    # Affichage du DataFrame après transformation
    print(df)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, utilisée pour la manipulation des données sous forme de DataFrame.
    from sklearn.preprocessing import StandardScaler importe la classe StandardScaler de la bibliothèque scikit-learn, qui est utilisée pour normaliser les données, c'est-à-dire transformer les valeurs pour qu'elles aient une moyenne de 0 et un écart-type de 1.

    Création d'un DataFrame

    Le dictionnaire data contient trois colonnes : 'col1', 'col2' (des variables numériques), et 'col3' (une variable catégorielle). Ces données sont ensuite converties en un DataFrame avec la méthode pd.DataFrame(data).

    Initialisation du StandardScaler

    scaler = StandardScaler() crée un objet StandardScaler, utilisé pour standardiser les données, c'est-à-dire les transformer de manière à ce qu'elles aient une moyenne de 0 et un écart-type de 1.

    Application de la transformation sur les colonnes 'col1' et 'col2'

    df[['col1', 'col2']] = scaler.fit_transform(df[['col1', 'col2']]) applique la transformation de standardisation uniquement sur les colonnes 'col1' et 'col2' du DataFrame. La méthode fit_transform() calcule la moyenne et l'écart-type pour chaque colonne, puis effectue la transformation pour rendre les valeurs de ces colonnes standardisées (moyenne de 0 et écart-type de 1).

    Affichage du DataFrame après transformation

    print(df) affiche le DataFrame après la transformation. Les colonnes 'col1' et 'col2' contiennent maintenant les valeurs standardisées, tandis que 'col3' reste inchangée.