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)})
figure = plt.figure()
axe = figure.gca()
axe = passed.plot(kind='kde', ax=axe)
axe = distinctive.plot(kind='kde', ax=axe)
axe = non_passing.plot(kind='kde', ax=axe)
    @property
    def summary(self):
        if self._summary is None:
            self._summary = SummaryStatistics(mean=self.data.mean(),
                                              std=self.data.std(),
                                              minimum=self.data.min(),
                                              maximum=self.data.max())
        return self._summary

    def print_summary_statistics(self):
        print( 'Mean:', self.summary.mean)
        print( 'Standard deviation:', self.summary.std)
        print( 'Minimum:', self.summary.minimum)
        print( 'Maximum:', self.summary.maximum)

total_minutes_by_account = total_engagement_attribute('total_minutes_visited', sum, engagement_by_account)
statistics = Summary(total_minutes_by_account)
if PWEAVE:
    statistics.print_summary_statistics()

count = 0
if PWEAVE:
    for account, value in total_minutes_by_account.items():
        if value < 1:
            print(account,value)
        if count > 5:
            break
        count += 1

if PWEAVE:
    for enrollment in paid_enrollments: