code: def handle_missing_values(df, fill_value=np.nan, strategy="mean"):
      logger.info(
          f"Check for missing values in the dataset ...  \n"
          f"{df.isna().sum()}  \n "
          f"{'-'*100}"
      )
  
      if strategy.lower() == "drop":
          return df.dropna()
  
      cleaner = SimpleImputer(fill_value=fill_value, strategy=strategy)
      cleaned = cleaner.fit_transform(df)
  
      return pd.DataFrame(cleaned, columns=df.columns)
  
file_path: igel/igel/preprocessing.py
imports: import logging
  import numpy
  import pandas
  from sklearn.impute import SimpleImputer
  from sklearn.preprocessing import LabelEncoder, MinMaxScaler, OneHotEncoder, StandardScaler
label_desc: Use image node_id 3 for calling a global function with example usage: handle_missing_values(df, fill_value, strategy) and returns: pd, df