الباندا: كيفية استخدام 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