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)
Explication du code :
- Nous avons créé un DataFrame
df
contenant trois colonnes :col1
,col2
(numériques) etcol3
(non numérique). - Nous avons instancié un objet
StandardScaler
, qui standardisera les colonnes numériques en leur attribuant une moyenne de 0 et un écart-type de 1. - Nous avons utilisé
fit_transform()
pour ajuster le scaler sur les colonnescol1
etcol2
, puis appliqué la transformation sur ces colonnes uniquement. - Les colonnes non sélectionnées, comme
col3
, n'ont pas été affectées par la transformation.
Conseils d'utilisation :
- Cette approche est idéale pour travailler avec des données qui contiennent à la fois des variables numériques et non numériques.
- Vous pouvez facilement adapter ce processus pour d'autres types de transformations, comme la normalisation (
MinMaxScaler
), en utilisant simplement un autre transformateur de Scikit-learn. - Si vous avez plusieurs colonnes à transformer, vous pouvez passer un sous-ensemble de ces colonnes à la méthode
fit_transform()
.
- Nous avons créé un DataFrame