وعليكم السلام ورحمة الله تعالى وبركاته،
في بيئة Kaggle Notebook لدينا ثلاث مجلدات رئيسية:
/kaggle/input/ وهو مجلد البيانات المدخلة نستخدمه للقراءة فقط إذ لا يمكن الكتابة فيه
/kaggle/working/ وهو مجلد العمل الخاص بك إذ يمكن الكتابة والقراءة منه
/kaggle/tmp/ وهو مجلد مؤقت وهو الذي يحذف عند إعادة التشغيل
لذا عندما تعالج البيانات ب IterativeImputer يمكنك حفظها في /kaggle/working/ كملف CSV ثم في بداية الدفتر يمكنك التحقق من وجود الملف المحفوظ:
إذا كان موجود ستقوم بتحميله مباشرة
إذا لم يكن موجود نفذ المعالجة واحفظه
وهذا يوفر عليك وقت إعادة تنفيذ المعالجة في كل مرة تفتح فيها الدفتر، لأن الملفات في /kaggle/working/ تبقى محفوظة حتى لو أغلقت الدفتر وفتحته مرة أخرى لعمل ذلك يمكنك بداية استيراد المكتبة os:
import os
ثم في بداية الدالة بعد السطر الأول تضيف شرط التحقق من وجود الملف:
if os.path.exists('/kaggle/working/processed_data.csv'):
return pd.read_csv('/kaggle/working/processed_data.csv')
ثم في النهاية وقبل return data تضيف السطر الذي يقوم بالحفظ كالتالي:
data.to_csv('/kaggle/working/processed_data.csv', index=False)