def post(self, request):
     """
     serves http post request made by client.
     """
     form = self.form(request.POST or None)
     method = request.POST.get('method', '')
     table = Loader.read_csv()
     if form.is_valid():
         result = [table[0]]
         data = table[1:]
         if method == "1":
             myobject = MeanImputation(data)
         else:
             myobject = HotDeckImputation(data)
         data = myobject.main()
         for i in data:
             result.append(i)
         Loader.write_csv(result)
         return HttpResponseRedirect("/missing/")
     else:
         context = {
                    'form': form,
                    'error': 'Select one method before action!'
         }
         return render(request, self.template, context)
 def post(self, request):
     request_post = dict(request.POST)
     table = Loader.read_csv()
     myobject = Binning(table)
     result = myobject.main(request_post)
     Loader.write_csv(result)
     
     context = {'success': 'Operation completed Successfully!'}
     return render(request, self.template, context)
 def get(self, request):
     try:
         table = Loader.read_csv()
         heading = table[0]
         data = table[1:]
         return render(request, self.template, {"heading": heading, "data": data})
     except:
         return render(request, self.template, {"alert": "no data exist to display"})
def download_csv(request):
    """
    download the data in csv format
    """
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = "attachment; filename=data.csv"
    writer = csv.writer(response)
    table = Loader.read_csv()
    for i in table:
        writer.writerow(i)
    return response
 def get(self, request):
     table = Loader.read_csv()
     for row in table:
         for item in row:
             if item in ('NULL', '*', '?'):
                 message = "there are missing values in your data, fill them first."
                 return render(request, self.template, {'message': message})
         
     row_size = len(table[0])
     fields = []
     for i in range(1, row_size):
         try:
             float(table[1][i])
             fields.append(table[0][i])
         except:
             pass
     return render(request, self.template, {"fields": fields})
 def get(self, request):
     """
     serves http get request send by client.
     """
     table = Loader.read_csv()[1:]   # read file from media folder
     total_missings = self.__calculate_missings(table)
     if total_missings:
         context = {
                    'form': self.form,
                    'info': '"{}" values missing in your data'.format(total_missings)
         }
     else:
         context = {
                    "form": self.form,
                    'message': "No missing values found in the data."
         }
         
     return render(request, self.template, context)
 def post(self, request):
     table = Loader.read_csv()
     myobject = OneR(table)
     print(myobject.main())
     context = {'message': myobject.main()}
     return render(request, self.template, context)
    frequency_table = {
            'Humidity': {
                'Normal': [6, 1],
                'High': [3, 4]
            },
                       
            'Temperature': {
                'Mild': [4, 2],
                'Cool': [3, 1],
                'Hot': [2, 2]
            },
                       
            'Outlook': {
                'Rainy': [3, 2],
                'Overcast': [4, 0],
                'Sunny': [2, 3]
            },
                       
            'Windy': {
                'TRUE': [3, 3],
                'FALSE': [6, 2]
            }
                       
    }
    
    table = Loader.read_csv()
    myobject = OneR(table)
    result = myobject.calculate_frequency_table()
    for k,v in result.items():
        print(k,v)