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 :
import pandas as pd
importe la bibliothèque pandas, utilisée pour la manipulation des données sous forme deDataFrame
.
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 unDataFrame
avec la méthodepd.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éthodefit_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 leDataFrame
après la transformation. Les colonnes'col1'
et'col2'
contiennent maintenant les valeurs standardisées, tandis que'col3'
reste inchangée.