def calc_average(self, from_date=None, to_date=None): my_set = self.return_complete_sets() # import pdb; pdb.set_trace() incomes = [] expenses = [] last_date = None t = Transaction() for date, value in sorted(my_set.items()): if last_date: invest = t.get_total_invest('All', last_date, date) divest = t.get_total_divest('All', last_date, date) dividend = t.get_total_dividend('All', last_date, date) else: invest, divest, dividend = 0, 0, 0 last_date = date # print(10*'---') # print(date) # print('Divest', divest) # print('Invest', invest) # print('Dividend', dividend) # print(value['income']) # print(value['expense']) # print(value['expense']+ divest + invest + dividend) incomes.append(value['income']) expenses.append(value['expense'] + divest + invest + dividend) incomes = list(incomes) expenses = list(expenses) if incomes != []: median_income = statistics.mean(incomes) else: median_income = 0 if expenses != []: median_expense = statistics.mean(expenses) else: median_expense = 0 return median_income, median_expense