import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler

df = pd.DataFrame({
    'age': [20, 25, np.nan, 20, 25],
    'category': ['a', 'b', 'a', np.nan, 'b']
})

print("Original Dataset:")
print(df)

df['age'] = df['age'].fillna(df['age'].mean())
df['category'] = df['category'].fillna('Unknown')

scaler = MinMaxScaler()
df['age'] = scaler.fit_transform(df[['age']])

df['category'] = pd.factorize(df['category'])[0]

print("\nPreprocessed Dataset:")
print(df)