الباندا: كيفية استخدام ffill بناءً على الحالة


يمكنك استخدام بناء الجملة الأساسي التالي لاستخدام الدالة ffill() في الباندا لتمرير قيم التعبئة بناءً على شرط في عمود آخر:

 df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()

سيقوم هذا المثال المحدد بتمرير قيم التعبئة في عمود المبيعات فقط إذا كانت القيمة السابقة في عمود المتجر مساوية للقيمة الحالية في عمود المتجر .

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

مثال: استخدم ffill بناءً على الحالة في Pandas

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

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'B'],
                   ' quarter ': [1, 2, 1, 3, 2, 4, 3, 4],
                   ' sales ': [12, 22, 30, np.nan, 24, np.nan, np.nan, np.nan]})

#view DataFrame
print (df)

  store quarter sales
0 A 1 12.0
1 to 2 22.0
2 B 1 30.0
3 to 3 NaN
4 B 2 24.0
5 A 4 NaN
6 B 3 NaN
7 B 4 NaN

لاحظ أن هناك قيم NaN متعددة في عمود المبيعات .

لنفترض أننا نريد ملء قيم NaN هذه باستخدام القيمة السابقة في عمود المبيعات ، ولكننا نريد التأكد من أن القيم تتوافق مع المتجر الصحيح.

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

 #group by store and forward fill values in sales column
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()

#view updated DataFrame
print (df)

  store quarter sales
0 A 1 12.0
1 to 2 22.0
2 B 1 30.0
3 A 3 22.0
4 B 2 24.0
5 A 4 22.0
6 B 3 24.0
7 B 4 24.0

لاحظ أنه تم استبدال قيم NaN الموجودة في عمود المبيعات بقيمة المبيعات السابقة والقيم تتوافق مع المتجر الصحيح.

على سبيل المثال:

  • تم استبدال قيمة NaN في الموضع 3 من فهرس الصف بالقيمة 22 ، والتي كانت القيمة الأحدث في عمود المبيعات المقابل للمتجر أ.
  • تم استبدال قيمة NaN في الموضع 6 من فهرس الصف بالقيمة 24 ، والتي كانت القيمة الأحدث في عمود المبيعات المقابل للمتجر B.

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

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة pandas ffill() هنا .

مصادر إضافية

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

كيفية حساب القيم المفقودة في الباندا
كيفية حذف الصفوف ذات قيم NaN في Pandas
كيفية حذف الصفوف التي تحتوي على قيمة محددة في Pandas

Add a Comment

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