code: def default_fill_na_series(
      col: pd.Series, is_cat_column: t.Optional[bool] = None
  ) -> t.Optional[pd.Series]:
      """Fill NaN values based on column type if possible otherwise returns None."""
      if (
          is_cat_column
          and "None" not in col.astype("object").dropna().unique()
      ):
          return col.astype("object").fillna("None")
      elif is_numeric_dtype(col):
          return col.astype("float64").fillna(np.nan)
  
      common_values_list = col.mode()
      if (
          isinstance(common_values_list, pd.Series)
          and len(common_values_list) > 0
      ):
          return col.fillna(common_values_list[0])
      return None
  
file_path: deepchecks/deepchecks/utils/dataframes.py
imports: import typing
  import numpy
  import pandas
  from pandas.core.dtypes.common import is_float_dtype, is_integer_dtype, is_numeric_dtype
  from deepchecks.core.errors import DeepchecksValueError
  from deepchecks.utils.type_inference import infer_categorical_features
  from deepchecks.utils.typing import Hashable
  from deepchecks.utils.validation import ensure_hashable_or_mutable_sequence
label_desc: Use image node_id 2 for calling a global function with example usage: default_fill_na_series(col, is_cat_column) and returns: None, col, col, col