class_docstr: Calculate the difference between two columns.
  
  This calculation can be applied to :class:`.Number` columns to calculate
  numbers. It can also be applied to :class:`.Date`, :class:`.DateTime`, and
  :class:`.TimeDelta` columns to calculate time deltas.
  
  :param before_column_name:
      The name of a column containing the "before" values.
  :param after_column_name:
      The name of a column containing the "after" values.
class_docstr_tok: ["Calculate","the","difference","between","two","columns",".","This","calculation","can","be","applied","to",":","class",":","`",".Number","`","columns","to","calculate","numbers",".","It","can","also","be","applied","to",":","class",":","`",".Date","`",",",":","class",":","`",".DateTime","`",",","and",":","class",":","`",".TimeDelta","`","columns","to","calculate","time","deltas",".",":","param","before_column_name",":","The","name","of","a","column","containing","the","``","before","''","values",".",":","param","after_column_name",":","The","name","of","a","column","containing","the","``","after","''","values","."]
code: def run(self, table):
      new_column = []
  
      for row in table.rows:
          before = row[self._before_column_name]
          after = row[self._after_column_name]
  
          if before is not None and after is not None:
              new_column.append(after - before)
          else:
              new_column.append(None)
  
      return new_column
  
file_path: agate/agate/computations/change.py
imports: from agate.aggregations.has_nulls import HasNulls
  from agate.computations.base import Computation
  from agate.data_types import Date, DateTime, Number, TimeDelta
  from agate.exceptions import DataTypeError
  from agate.warns import warn_null_calculation
label_desc: Use image node_id 4 for calling the Change obj's underlying member method code with example usage: obj.run(table) and returns: new_column