كيفية التجميع حسب الأسبوع في pandas dataframe (مع مثال)


يمكنك استخدام بناء الجملة الأساسي التالي لتجميع الصفوف حسب الأسبوع في pandas DataFrame:

 #convert date column to datetime and subtract one week
df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ')

#calculate sum of values, grouped by week
df. groupby ([pd. Group (key=' date ', freq=' W ')])[' values ']. sum ()

تقوم هذه الصيغة الخاصة بتجميع الصفوف حسب الأسبوع في عمود التاريخ وتحسب مجموع القيم لعمود القيم في DataFrame.

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: كيفية التجميع حسب الأسبوع في Pandas

لنفترض أن لدينا DataFrame الباندا التالي الذي يوضح المبيعات التي أجرتها الشركة في تواريخ مختلفة:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start='1/5/2022', freq='D', periods=15),
                   ' sales ': [6, 8, 9, 5, 4, 8, 8, 3, 5, 9, 8, 3, 4, 7, 7]})

#view DataFrame
print (df)

         dirty date
0 2022-01-05 6
1 2022-01-06 8
2 2022-01-07 9
3 2022-01-08 5
4 2022-01-09 4
5 2022-01-10 8
6 2022-01-11 8
7 2022-01-12 3
8 2022-01-13 5
9 2022-01-14 9
10 2022-01-15 8
11 2022-01-16 3
12 2022-01-17 4
13 2022-01-18 7
14 2022-01-19 7

ذات صلة: كيفية إنشاء نطاق زمني في الباندا

يمكننا استخدام الصيغة التالية لحساب مجموع المبيعات المجمعة حسب الأسبوع:

 #convert date column to datetime and subtract one week
df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ')

#calculate sum of values, grouped by week
df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. sum ()

date
2022-01-02 32
2022-01-09 44
2022-01-16 18
Freq: W-SUN, Name: sales, dtype: int64

وإليك كيفية تفسير النتيجة:

  • تمت 32 عملية بيع خلال الأسبوع الذي يبدأ من اليوم التالي لـ 1/2/2022.
  • تمت 44 عملية بيع إجمالاً خلال الأسبوع الذي يبدأ من اليوم التالي لـ 01/09/2022.
  • وتمت تنفيذ 18 عملية بيع خلال الأسبوع الذي يبدأ من اليوم التالي لتاريخ 16/01/2022.

تجدر الإشارة إلى أنه افتراضيًا، تفترض الباندا أن الأسبوع يبدأ في اليوم التالي للأحد ( W-SUN ).

ومع ذلك، وفقًا للوثائق ، يمكنك تغيير هذه القيمة لـ Freq .

على سبيل المثال، يمكنك تحديد Freq=W-MON إذا كنت تريد أن يبدأ كل أسبوع في اليوم التالي للاثنين (أي الثلاثاء).

يمكننا استخدام صيغة مشابهة لحساب الحد الأقصى لقيم المبيعات مجمعة حسب الأسبوع:

 #convert date column to datetime and subtract one week
df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ')

#calculate max of values, grouped by week
df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. max ()

date
2022-01-02 9
2022-01-09 9
2022-01-16 7
Freq: W-SUN, Name: sales, dtype: int64

وإليك كيفية تفسير النتيجة:

  • الحد الأقصى للمبيعات يوميا خلال الأسبوع الذي يبدأ في اليوم التالي لتاريخ 01/02/2022 هو 9 .
  • الحد الأقصى لعدد المبيعات يوميا خلال الأسبوع الذي يبدأ من اليوم التالي لتاريخ 01/9/2022 هو 9 .
  • الحد الأقصى لعدد المبيعات يوميا خلال الأسبوع الذي يبدأ من اليوم التالي لتاريخ 16/01/2022 هو 7 .

ملاحظة : يمكنك العثور على الوثائق الكاملة لعملية التجميع في الباندا هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

كيفية التجميع حسب الشهر في Pandas DataFrame
كيفية التجميع حسب اليوم في Pandas DataFrame
كيفية استخدام Groupby والعد المشروط في Pandas

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *