الحصول على الترددات النسبية باستخدام pandas مع متغيرين تجميعيين
في عالم تحليل البيانات، يواجه الكثير من المحللين تحديات متعددة عند التعامل مع مجموعات البيانات الكبيرة والمعقدة. واحدة من هذه التحديات هي استخراج التكرارات النسبية للبيانات، خاصة مع وجود أكثر من متغير للتجميع. في هذا المقال، سنستعرض كيفية الحصول على التكرارات النسبية باستخدام مكتبة "باندا" في لغة البرمجة بايثون، مع التركيز على كيفية التعامل مع مجموعتين من المتغيرات.
فهم البيانات
لنفترض أن لدينا مجموعة بيانات تمثل مبيعات منتجات مختلفة عبر أيام معينة. يتكون إطار البيانات من عمودين رئيسيين: عمود الزمن وعمود المنتجات التي تم بيعها. بياناتنا تتضمن مبيعات تفاح وموز على مدى يومين محددين، وهما 27 و28 من نوفمبر 2025. إليك نموذج البيانات:
import pandas as pd
import datetime
df = pd.DataFrame({
'datetime': [
datetime.datetime(2024, 11, 27, 0),
datetime.datetime(2024, 11, 27, 1),
datetime.datetime(2024, 11, 28, 0),
datetime.datetime(2024, 11, 28, 1),
datetime.datetime(2024, 11, 28, 2)
],
'product': ['Apple', 'Banana', 'Banana', 'Apple', 'Banana']
})
تحليل التكرارات المطلقة
في المرحلة الأولى، سنقوم بحساب التكرارات المطلقة لكل منتج في كل يوم. تستخدم مكتبة "باندا" تسهيلات قوية تجعلك تحصل على البيانات المطلوبة عبر الدوال المناسبة. الخطوة الأولى هي استخدام دالة groupby
مع مؤشرات الوقت عبر pd.Grouper
لتحديد الأيام:
absolute_frequency = df.groupby([pd.Grouper(key='datetime', freq='D'), 'product']).size().reset_index(name='count')
هذه الدالة ستجمع البيانات حسب كل يوم، وتعيد لنا عدد المنتجات المباعة في كل من هذين اليومين.
حساب التكرارات النسبية
بعد حساب التكرارات المطلقة، الخطوة التالية هي تحويلها إلى تكرارات نسبية. نحتاج هنا لجمع إجمالي التكرارات لكل يوم، ثم نقسم عدد كل منتج على الإجمالي للحصول على النسبة:
total_counts = absolute_frequency.groupby('datetime')['count'].transform('sum')
absolute_frequency['relative_frequency'] = absolute_frequency['count'] / total_counts
التصور البياني
أحد أهم جوانب تحليل البيانات هو القدرة على تصور النتائج. بعد حساب التكرارات النسبية، يمكننا استخدام دالة pivot
ومن ثم الرسم البياني:
absolute_frequency.pivot(index='datetime', columns='product', values='relative_frequency').plot()
بهذه الطريقة، نحصل على عرض مرئي يبين النسب المئوية لكل منتج في كل يوم.
أساليب بديلة
بينما الخطوات الموضحة أعلاه فعالة، إلا أن هناك طرقاً أبسط لمعالجة هذه البيانات. على سبيل المثال، يمكنك استخدام دالة unstack
بدلاً من pivot
للحصول على تمثيل مماثل للتكرارات المطلقة مباشرة:
df.groupby([pd.Grouper(key='datetime', freq='D'), 'product']).size().unstack('product').plot(kind='line')
خاتمة
في الختام، أصبح من الواضح كيفية استخدام مكتبة "باندا" في بايثون لتحليل بيانات المبيعات والحصول على التكرارات النسبية باستخدام متغيرين للتجميع. يعتمد التحليل الفعّال للبيانات على فهم كيفية تنظيم وتصور البيانات بشكل صحيح، مما يسهل اتخاذ القرارات المستندة على البيانات. إن استخدام الطرق الموضحة يجعلك أكثر كفاءة في التعامل مع بياناتك، مما يتيح لك استخراج رؤى قيمة من بياناتك بسرعة وسهولة. إذا كنت تبحث عن طرق أخرى للتعامل مع بيانات مماثلة، يمكنك دائمًا استكشاف تقنيات جديدة أو أدوات مختلفة ضمن بايثون.