تطبيق العمليات الحسابية مع قيم الصف السابق في Pandas
في Pandas، مواجهة التحدي المتمثل في دمج قيم الصف السابق في الحسابات أثناء معالجة البيانات ليست كذلك غير شائع. يتضمن أحد هذه السيناريوهات الحاجة إلى استخدام قيمة الصف السابق عند حساب عمود جديد باستخدام الدالة application().
فكر في سيناريو حيث لدينا DataFrame بالبنية التالية:
Index_Date A B C D ================================ 2015-01-31 10 10 Nan 10 2015-02-01 2 3 Nan 22 2015-02-02 10 60 Nan 280 2015-02-03 10 100 Nan 250
هدفنا هو ملء العمود "C" بالقيم المحسوبة. بالنسبة للصف الأول، يتم اشتقاق "C" من "D". بالنسبة للصفوف اللاحقة، يتم حساب "C" عن طريق ضرب قيمة "C" للصف السابق بقيمة "A" للصف الحالي وإضافة القيمة "B".
النهج
لتحقيق ذلك، نستخدم مزيجًا من التهيئة والتكرار داخل وظيفة application().
df.loc[0, 'C'] = df.loc[0, 'D']
for i in range(1, len(df)):
df.loc[i, 'C'] = df.loc[i - 1, 'C'] * df.loc[i, 'A'] df.loc[i, 'B']
النتيجة
سيعمل هذا الأسلوب على ملء العمود "C" بالقيم المحسوبة المطلوبة بشكل فعال:Index_Date A B C D ========================================================================== 2015-01-31 10 10 10 10 2015-02-01 2 3 23 22 2015-02-02 10 60 290 280 2015-02-03 101003000250تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3