class_docstr: Calculate the median of a column.
  
  Median is equivalent to the 50th percentile. See :class:`Percentiles`
  for implementation details.
  
  :param column_name:
      The name of a column containing :class:`.Number` data.
code: def validate(self, table):
      column = table.columns[self._column_name]
  
      if not isinstance(column.data_type, Number):
          raise DataTypeError(
              "Median can only be applied to columns containing Number data."
          )
  
      has_nulls = HasNulls(self._column_name).run(table)
  
      if has_nulls:
          warn_null_calculation(self, column)
  
file_path: agate/agate/aggregations/median.py
imports: from agate.aggregations.base import Aggregation
  from agate.aggregations.has_nulls import HasNulls
  from agate.aggregations.percentiles import Percentiles
  from agate.data_types import Number
  from agate.exceptions import DataTypeError
  from agate.warns import warn_null_calculation
label_desc: Use image node_id 3 for calling the Median obj's underlying member method code with example usage: obj.validate(table) without return types