كيفية تجميع البيانات حسب الوقت في الباندا (مع مثال)
يمكنك استخدام بناء الجملة التالي لتجميع البيانات حسب الوقت وإجراء التجميع في الباندا:
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()
يقوم هذا المثال تحديدًا بتجميع القيم حسب الساعة في عمود يسمى ” الساعة” ثم يقوم بحساب مجموع القيم الموجودة في عمود “المبيعات ” لكل ساعة.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: تجميع البيانات حسب الوقت في Pandas
لنفترض أن لدينا DataFrame الباندا التالي الذي يوضح عدد المبيعات التي تمت في أوقات مختلفة من اليوم لمتجر ما:
import pandas as pd #createDataFrame df = pd. DataFrame ({' time ': ['2022-01-01 01:14:00', '2022-01-01 01:24:15', '2022-01-01 02:52:19', '2022-01-01 02:54:00', '2022-01-01 04:05:10', '2022-01-01 05:35:09'], ' sales ': [18, 20, 15, 14, 10, 9]}) #convert date column to datetime df[' time '] = pd. to_datetime (df[' time ']) #view DataFrame print (df) time sales 0 2022-01-01 01:14:00 18 1 2022-01-01 01:24:15 20 2 2022-01-01 02:52:19 15 3 2022-01-01 02:54:00 14 4 2022-01-01 04:05:10 10 5 2022-01-01 05:35:09 9
يمكننا استخدام الصيغة التالية لتجميع عمود الوقت حسب الساعات وحساب مجموع المبيعات لكل ساعة:
#group by hours in time column and calculate sum of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()
time
1 38
2 29
4 10
5 9
Name: sales, dtype: int64
ومن النتيجة يمكننا أن نرى:
- تم إجراء ما مجموعه 38 عملية بيع في الساعة الأولى.
- تم إجراء ما مجموعه 29 عملية بيع في الساعة الثانية.
- تم إجراء ما مجموعه 10 عمليات بيع في الساعة الرابعة.
- تم إجراء ما مجموعه 9 عمليات بيع خلال الساعة الخامسة.
لاحظ أنه يمكننا أيضًا إجراء تجميع آخر.
على سبيل المثال، يمكننا حساب متوسط عدد المبيعات في الساعة:
#group by hours in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . mean ()
time
1 19.0
2 14.5
4 10.0
5 9.0
Name: sales, dtype: float64
يمكننا أيضًا التجميع حسب الساعات والدقائق إذا أردنا ذلك.
على سبيل المثال، يوضح التعليمة البرمجية التالية كيفية حساب مجموع المبيعات، مجمعة حسب الساعات والدقائق:
#group by hours and minutes in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour , df[' time ']. dt . minute ]). dirty . mean ()
time time
1 14 18
24 20
2 52 15
54 14
4 5 10
5 35 9
Name: sales, dtype: int64
ومن النتيجة يمكننا أن نرى:
- متوسط عدد المبيعات خلال ساعة و 14 دقيقة كان 18 .
- متوسط عدد المبيعات خلال ساعة و 23 دقيقة كان 20 .
- متوسط عدد المبيعات خلال ساعتين و 52 دقيقة كان 15 .
وما إلى ذلك وهلم جرا.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
كيفية إنشاء نطاق زمني في الباندا
كيفية استخراج الشهر من التاريخ في الباندا
كيفية تحويل الطابع الزمني إلى التاريخ/الوقت في Pandas