code: def preprocess(
      df,
      with_tax_values=True,
      log_scale_lot=True,
      log_scale_listed_price=True,
      has_label=True,
  ):
      new_df = df.copy()
      new_df.drop("Id", axis=1, inplace=True)
      new_df["Elementary School"] = new_df["Elementary School"].apply(
          lambda ele: str(ele)[: -len(" Elementary School")]
          if str(ele).endswith("Elementary School")
          else ele
      )
      if log_scale_lot:
          new_df["Lot"] = np.log(new_df["Lot"] + 1)
      if log_scale_listed_price:
          log_listed_price = np.log(new_df["Listed Price"]).clip(
              0, None
          )
          new_df["Listed Price"] = log_listed_price
      if with_tax_values:
          new_df["Tax assessed value"] = np.log(
              new_df["Tax assessed value"] + 1
          )
          new_df["Annual tax amount"] = np.log(
              new_df["Annual tax amount"] + 1
          )
      else:
          new_df.drop("Tax assessed value", axis=1, inplace=True)
          new_df.drop("Annual tax amount", axis=1, inplace=True)
      if has_label:
          new_df["Sold Price"] = np.log(new_df["Sold Price"])
      return new_df
  
file_path: autogluon/examples/automm/kaggle_california_house_price/example_kaggle_house.py
imports: import pandas
  import numpy
  import argparse
  import os
  import random
  from autogluon.tabular import TabularPredictor
  from autogluon.multimodal import MultiModalPredictor
  import torch
label_desc: Use image node_id 3 for calling a global function with example usage: preprocess(df, with_tax_values, log_scale_lot, log_scale_listed_price, has_label) and returns: new_df