@staticmethod
def reduce(mapped, reducer):
    """
        Takes a list of events and a reducer function and returns
        a new Event with the result, for each column. The reducer is
        of the form

        ::

            function sum(valueList) {
                return calcValue;
            }

        Parameters
        ----------
        mapped : dict
            Dict as produced by map()
        reducer : function
            The reducer function.

        Returns
        -------
        dict
            A dict of reduced values.
        """
    result = dict()
    for k, v in list(mapped.items()):
        result[k] = reducer(v)
    return result
