out_string = "{0}:\t{1:.2f}\t{2:.2f}\t\t{3:.2f}\t\t{4:.2f}"
    print(column.title())
    print('-' * len(column))
    print("\tPassed\tDistinctive\tNon-Passed\tPassing")
    print(out_string.format('Mean', passed.mean, distinctive.mean, non_passed.mean, passing.mean))
    print(out_string.format("STD", passed.std, distinctive.std, non_passed.std, passing.std))
    print(out_string.format('Min', passed.min, distinctive.min, non_passed.min, passing.min))
    print(out_string.format('QI\t', passed.q1, distinctive.q1, non_passed.q1, passing.q1))
    print(out_string.format('Median', passed.median, distinctive.median, non_passed.median, passing.median))
    print(out_string.format('QIII', passed.q3, distinctive.q3, non_passed.q3, passing.q3))
    print(out_string.format("Max", passed.max, distinctive.max, non_passed.max, passing.max))
    print(out_string.format('IQR', passed.iqr, distinctive.iqr, non_passed.iqr, passing.iqr))
    print(out_string.format("Count", passed.count, distinctive.count, non_passed.count, passing.count))

key = b'account_key'
passing = list_to_account_dict(passing_engagement, key)
passed = list_to_account_dict(passed_engagement, key)
distinctive = list_to_account_dict(distinctive_engagement, key)
non_passing = list_to_account_dict(non_passing_engagement, key)    

passed_total = total_engagement_attribute(b'total_minutes_visited', sum, passed)
passing_total = total_engagement_attribute(b'total_minutes_visited', sum, passing)
distinctive_total = total_engagement_attribute(b'total_minutes_visited', sum, distinctive)
non_passing_total = total_engagement_attribute(b'total_minutes_visited', sum, non_passing)
p = to_array(passed_total)

print_columns_redone(passed_total, distinctive_total, non_passing_total, passing_total, 'total_minutes_visited')

passed = pandas.DataFrame({'passed':to_array(passed_total)})
distinctive = pandas.DataFrame({'distinctive':to_array(distinctive_total)})
non_passing = pandas.DataFrame({'non-passing':to_array(non_passing_total)})
# python standard library
from collections import namedtuple, defaultdict

# third-party
import numpy

# this code
from paid_students import paid_engagement_in_first_week
from paid_students import paid_enrollments, paid_engagements
from utilities import list_to_account_dict
from utilities import total_engagement_attribute

PWEAVE =  __name__ in ('builtins', '__builtin__')

engagement_by_account = list_to_account_dict(paid_engagement_in_first_week)

SummaryStatistics = namedtuple('SummaryStatistics', ['mean',
                                                     'std',
                                                     'minimum',
                                                     'maximum'])

class Summary(object):
    def __init__(self, data):
        """
        :param: 
         - `data`: collection of data
        """
        self.data = data
        self._summary = None
        return