import pandas as pd
from sklearn.preprocessing import MinMaxScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
# Example dataset
data = pd.DataFrame({
"age": [25, 32, 47, 51, 62],
"income": [50000, 64000, 120000, 110000, 150000],
"gender": ["M", "F", "F", "M", "M"]
})
print(f"{data}")
# Define numeric and categorical features
numeric_features = ["age", "income"]
categorical_features = ["gender"]
# Set the Min-Max scaler for numeric features
numeric_transformer = Pipeline(steps=[("scaler", MinMaxScaler())])
# Drop the first category to avoid redundancy
categorical_transformer = Pipeline(steps=[
("onehot", OneHotEncoder(drop="first"))])
# Combine transformations
preprocessor = ColumnTransformer(
transformers=[
("num", numeric_transformer, numeric_features),
("cat", categorical_transformer, categorical_features)])
# Apply transformation
X_scaled = preprocessor.fit_transform(data)
print("\nTransformed Features:")
print(X_scaled)