class_docstr: Extend ReduceMixin to identify checks that output result per property.
  
  Should implement the property_reduce function and all the aggregation methods it supports.
docstr: Return an aggregated drift score based on aggregation method defined.
docstr_tok: ["Return","an","aggregated","drift","score","based","on","aggregation","method","defined","."]
code: def property_reduce(
      aggregation_method: str,
      value_per_property: pd.Series,
      score_name: str,
  ) -> Dict[str, float]:
      """Return an aggregated drift score based on aggregation method defined."""
      if aggregation_method is None or aggregation_method == "none":
          return dict(value_per_property)
      elif aggregation_method == "mean":
          return {
              str("Mean " + score_name): np.mean(value_per_property)
          }
      elif aggregation_method == "max":
          return {str("Max " + score_name): np.max(value_per_property)}
      else:
          raise DeepchecksValueError(
              f"Unknown aggregation method: {aggregation_method}"
          )
  
imports: import abc
  from typing import Dict, Optional
  import numpy
  import pandas
  from deepchecks.core.errors import DeepchecksValueError
  from deepchecks.utils.logger import get_logger
label_desc: Use image node_id 2 for calling the ReducePropertyMixin obj's underlying member method code with example usage: obj.property_reduce(aggregation_method, value_per_property, score_name) and returns: dict, dict, dict