البحث عن تركيبات مفقودة لثلاث أعمدة باستخدام Pandas
تعتبر مكتبة Pandas في Python من بين الأدوات الأكثر استخدامًا في تحليل البيانات، حيث توفر العديد من الوظائف التي تسهل عملية التعامل مع البيانات. من بين التحديات التي قد تواجهها أثناء استخدام Pandas هي كيفية العثور على التركيبات المفقودة من أعمدة متعددة، والتي قد تكون ضرورية عند تحليل البيانات لضمان شموليتها وكمالها. في هذا المقال، سنستعرض طريقة للعثور على التركيبات المفقودة من ثلاثة أعمدة باستخدام Python 3.x، وسنقوم بشرح ذلك خطوة بخطوة.
فهم كيف يمكن العثور على التركيبات المفقودة
في البداية، سيتطلب الأمر إنشاء DataFrame يحتوي على البيانات التي نعمل معها. لنفترض أن لدينا البيانات التالية التي تحتوي على ثلاث أعمدة: A، B وC. يمكننا استخدام مكتبة Pandas لإنشاء DataFrame يحتوي على القيم الموجودة في هذه الأعمدة.
import pandas as pd data = {'A': ['s1', 's1', 's1', 's2'], 'B': ['a1', 'a1', 'a2', 'a1'], 'C': ['s1', 's2', 's5', 's1']} df = pd.DataFrame(data)
استخرج القيم الفريدة لكل عمود
لبدء عملية العثور على التركيبات المفقودة، سنحتاج إلى استخراج القيم الفريدة من كل عمود. يمكننا فعل ذلك باستخدام الدالة unique()
المتاحة في مكتبة Pandas. بعد الحصول على القيم الفريدة، يمكننا استخدامها لتحديد التركيبات الممكنة.
A_values = df['A'].unique() B_values = df['B'].unique() C_values = df['C'].unique()
إنشاء تعيين للمجموعات الموجودة
الخطوة التالية هي إنشاء تعيين للمجموعات الموجودة لكل زوج (A، B). نقوم بذلك بتمرير كل صف في DataFrame واستخدام القيم الموجودة لتحديث هذا التعيين.
existing_combinations = {} for _, row in df.iterrows(): a, b, c = row['A'], row['B'], row['C'] if (a, b) not in existing_combinations: existing_combinations[(a, b)] = set() existing_combinations[(a, b)].add(c)
تحديد التركيبات المفقودة
بعد أن قمنا بإنشاء التعيين للمجموعات الموجودة، يمكننا الآن البدء في تحديد التركيبات المفقودة. سنقوم بإنشاء قائمة جديدة ستحتوي على التركيبات المفقودة بناءً على القيم الممكنة.
missing_rows = [] for a in A_values: for b in B_values: valid_C_values = C_values existing_C_values = existing_combinations.get((a, b), set()) missing_C_values = set(valid_C_values) - existing_C_values for c in missing_C_values: missing_rows.append((a, b, c))
إنشاء DataFrame جديدة للقيم المفقودة
بعد تحديد التركيبات المفقودة، يمكننا الآن إنشاء DataFrame جديدة تحتوي على القيم المفقودة. سنقوم بجمع البيانات الأصلية مع التركيبات المفقودة في DataFrame واحدة لمراجعتها بشكل أوضح.
missing_df = pd.DataFrame(missing_rows, columns=['A', 'B', 'C']) df_updated = pd.concat([df, missing_df], ignore_index=True) print(df_updated)
عرض النتائج النهائية
النتائج النهائية ستظهر DataFrame محدثة تحتوي على جميع التركيبات الموجودة والمفقودة. سيساعد هذا الأمر في ضمان أن جميع التركيبات المتاحة قد تم تضمينها، مما يسهل عملية التحليل بشكل عام.
# الإخراج # A B C # 0 s1 a1 s1 # 1 s1 a1 s2 # 2 s1 a2 s5 # 3 s2 a1 s1 # 4 s1 a1 s5 # 5 s1 a2 s1 # 6 s1 a2 s2 # 7 s2 a1 s2 # 8 s2 a1 s5 # 9 s2 a2 s1 # 10 s2 a2 s2 # 11 s2 a2 s5
بذلك، قمنا باستعراض كيفية استخدام Python 3.x للعثور على التركيبات المفقودة من ثلاثة أعمدة في Pandas. يعد هذا الدليل خطوة بخطوة مناسبًا للمبتدئين والخبراء على حد سواء. إذا كنت مهتمًا بالتحليل العميق للبيانات، فإن فهم كيفية التعامل مع التركيبات المفقودة سيكون له فائدة كبيرة في مشاريعك المستقبلية.