-
المساهمات
785 -
تاريخ الانضمام
-
تاريخ آخر زيارة
إجابات الأسئلة
-
إجابة عبد الوهاب بومعراف سؤال في ارغب في بيانات كي اتمرن على تحليل البيانات كانت الإجابة المقبولة
يمكنني أن أنصحك بالعديد من المواقع التي يمكنك من خلالها الحصول على البيانات والعمل عليها باحترافية تامة فالعديد من المصادر توفر مجموعات بيانات مفتوحة وسهلة للمبتدئين كموقع Kaggle الذي يحتوي على آلاف مجموعات البيانات المجانية، يمكنك تصفح مجموعات بيانات جاهزة لاستخدامها في التحليل، مثل بيانات الطقس، المبيعات، وسجلات المرضى ويمكنك الوصول إليها عبر Kaggle Datasets.
كما توجد خدمة بحث من جوجل اسمها Google Dataset Search ستساعدك على العثور على مجموعات بيانات منشورة في الإنترنت يمكنك البحث عن مجموعات بيانات تتعلق بمواضيع معينة ترغب في العمل أو البحث عليها.
كما توجد قائمة على موقع GitHub اسمها Awesome Public Datasets فهي تجمع العديد من مجموعات البيانات المفتوحة، يمكنك استخدامها في تحليل البيانات في مجالات متعددة مثل العلوم الاجتماعية، الاقتصاد، الرياضيات وغيرها كما يمكنك الاطلاع على الإجابات المشابهة لسؤالك هنا:
-
إجابة عبد الوهاب بومعراف سؤال في اضافة قائمة منسدلة html وحصول علي البيانات منها من خلال django كانت الإجابة المقبولة
بداية، ستحتاج إلى إنشاء نموذج Django يعبر عن البيانات التي تريد تخزينها لنفترض أنك تريد حفظ اختيار المستخدم في حقل يسمى 'choice' فأول خطوة كما ذكرنا هي إنشاء النموذج على النحو التالي في ملف `models.py`:
from django.db import models class ChoiceModel(models.Model): CHOICES = [ ('option1', 'Option 1'), ('option2', 'Option 2'), ('option3', 'Option 3'), ] choice = models.CharField(max_length=10, choices=CHOICES) def __str__(self): return self.choice وهذا النموذج يحتوي على حقل يتضمن خيارات ثابتة يمكن للمستخدم الاختيار منها.
ثاني شيء ستحتاج إلى إنشاء نموذج Form يعرض القائمة المنسدلة في HTML ننشؤه من خلال ملف forms.py على النحو التالي:
from django import forms from .models import ChoiceModel class ChoiceForm(forms.ModelForm): class Meta: model = ChoiceModel fields = ['choice'] ولتوضيح الفكرة فهذا النموذج يستخدم النموذج الذي أنشأته في الخطوة السابقة لعرض القائمة المنسدلة في HTML.
بعدها ستحتاج إلى إنشاء عرض أو (View) يعرض النموذج ويتعامل مع البيانات المرسلة من المستخدم ننشؤه في ملف views.py على النحو التالي:
from django.shortcuts import render, redirect from .forms import ChoiceForm def choice_view(request): if request.method == 'POST': form = ChoiceForm(request.POST) if form.is_valid(): form.save() return redirect('success') else: form = ChoiceForm() return render(request, 'choice_form.html', {'form': form}) هذا العرض يتأكد من أن النموذج يتم عرضه بشكل صحيح ويتعامل مع إرسال البيانات فإذا كان الطلب من نوع POST يتم التحقق من صحة النموذج وحفظ البيانات في قاعدة البيانات لكن سنحتاج إلى إنشاء قالب HTML يعرض النموذج. يمكنك إنشاء هذا القالب في ملف choice_form.html داخل مجلد `templates` على النحو التالي:
<!-- templates/choice_form.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Choice Form</title> </head> <body> <h1>اختر من القائمة المنسدلة</h1> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">إرسال</button> </form> </body> </html> -
إجابة عبد الوهاب بومعراف سؤال في فهم اليه عمل الكود ده بلغه باثيون كانت الإجابة المقبولة
الخطأ الذي يظهر عند تشغيل هذا الكود يرجع إلى أن عملية التقاطع (`&`) غير مدعومة مباشرة بين كائنات `pd.Index` في مكتبة `pandas`. لاستخدام عملية التقاطع بين مجموعتين من المؤشرات، يجب استخدام الدالة `intersection` بدلا من ذلك. إليك الكود المعدل:
import pandas as pd arr0 = pd.Index([0,1,2,3,4]) arr1 = pd.Index([0,1,2]) print(arr0.intersection(arr1)) فهذا الكود سيعطيك التقاطع الصحيح بين المؤشرين `arr0` و `arr1`.
-
إجابة عبد الوهاب بومعراف سؤال في مشكلة برمجية في توزيع أوقات ضمن حلقة كانت الإجابة المقبولة
الخطأ الذي ظهر في الصورة التي قدمتها يعود إلى أن الدالة `range(len(students))` تولد قيم من 0 إلى عدد الطلاب الذي يزيد عن عدد الأوقات المتاحة في قائمة `appointment_times`. بما أن عدد الأوقات هو 4 فقط، ولكنك تحاول الوصول إلى فهرس في القائمة يتجاوز هذا العدد، فإنه ينتج عن ذلك خطأ `IndexError: list index out of range`.
هذا الخطأ يحدث عندما يكون عدد الطلاب أكبر من عدد الأوقات المتوفرة في `appointment_times` وتحاول الوصول إلى فهرس غير موجود في قائمة الأوقات.
لنحل هذه المشكلة، يجب التأكد من عدم تجاوز الدورة لعدد الأوقات المتاحة، أو كما في المثال التالي الذي يضمن توزيع الطلاب بطريقة تضمن عدم حدوث هذا التجاوز:
students = ['جاسم', 'خلف', 'عبدالله', 'زيد', 'ممدوح'] appointment_times = ['9:00', '9:30', '10:00', '10:30'] # طباعة المواعيد لأول ثلاث طلاب for i in range(min(3, len(students))): # يضمن هذا عدم تجاوز القائمة إذا كان عدد الطلاب أقل من 3 print(f"{students[i]} بالساعة {appointment_times[i]}") # توزيع الطلاب الباقين على الموعد الأخير for i in range(3, len(students)): print(f"{students[i]} بالساعة {appointment_times[-1]}") هذا الكود سيضمن توزيع الطلاب الثلاثة الأوائل على المواعيد الثلاثة الأولى، والطلاب الباقين جميعا على الموعد الأخير (10:30)، وهذه الطريقة تعمل حتى لو كان عدد الطلاب أقل من ثلاثة.