الباندا: كيفية استخدام groupby مع الفرق


يمكنك استخدام بناء الجملة الأساسي التالي لاستخدام الدالة groupby() مع الدالة diff() في الباندا:

 df = df. sort_values (by=[' group_var1 ', ' group_var2 '])

df[' diff '] = df. groupby ([' group_var1 '])[' values_var ']. diff (). fillna ( 0 )

يقوم هذا المثال تحديدًا بفرز صفوف DataFrame حسب متغيرين محددين، ثم تجميعها حسب group_var1 وحساب الفرق بين الصفوف في عمود value_var .

لاحظ أن fillna(0) يخبر الباندا بإدخال صفر عندما تتغير قيمة متغير المجموعة بين الأسطر المتتالية في DataFrame.

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

مثال: كيفية استخدام groupby مع الفرق في Pandas

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' date ': pd. to_datetime (['2022-01-01', '2022-01-02',
                                           '2022-01-03', '2022-01-04',
                                           '2022-01-01', '2022-01-02',
                                           '2022-01-03', '2022-01-04']),
                   ' sales ': [12, 15, 24, 24, 14, 19, 12, 38]})

#view DataFrame
print (df)

  blind date sales
0 A 2022-01-01 12
1 A 2022-01-02 15
2 A 2022-01-03 24
3 A 2022-01-04 24
4 B 2022-01-01 14
5 B 2022-01-02 19
6 B 2022-01-03 12
7 B 2022-01-04 38

لنفترض الآن أننا نريد إنشاء عمود جديد يسمى sales_diff يحتوي على الفرق في قيم المبيعات بين تواريخ متتالية، مجمعة حسب المتجر.

يمكننا استخدام بناء الجملة التالي للقيام بذلك:

 #sort DataFrame by store and date
df = df. sort_values (by=[' store ', ' date '])

#create new column that contains difference between sales grouped by store
df[' sales_diff '] = df. groupby ([' store '])[' sales ']. diff (). fillna ( 0 )

#view update DataFrame
print (df)

  store date sales sales_diff
0 A 2022-01-01 12 0.0
1 A 2022-01-02 15 3.0
2 A 2022-01-03 24 9.0
3 A 2022-01-04 24 0.0
4 B 2022-01-01 14 0.0
5 B 2022-01-02 19 5.0
6 B 2022-01-03 12 -7.0
7 B 2022-01-04 38 26.0

يحتوي عمود sales_diff الجديد على الفرق في قيم المبيعات بين تواريخ متتالية، مجمعة حسب المتجر.

على سبيل المثال يمكننا أن نرى:

  • الفرق في مبيعات المتجر “أ” بين 1/1/2022 و 2/1/2022 هو 3 .
  • الفرق في مبيعات المتجر “أ” بين 02/01/2022 و03/01/2022 هو 9 .
  • الفرق في مبيعات المتجر “أ” بين 1/3/2022 و1/4/2022 هو 0 .

وما إلى ذلك وهلم جرا.

مصادر إضافية

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

كيفية إجراء مجموع GroupBy في Pandas
كيفية استخدام Groupby وPlot في Pandas
كيفية حساب القيم الفريدة باستخدام GroupBy في Pandas

Add a Comment

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