الباندا: قم بإنشاء dataframe من إملاء بأطوال مختلفة
يمكنك استخدام بناء الجملة الأساسي التالي لإنشاء pandas DataFrame من قاموس له أطوال مختلفة لإدخالاته:
import pandas as pd df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()]))
يقوم بناء الجملة هذا بتحويل قائمة صفائف القاموس إلى قائمة سلسلة الباندا.
يتيح لنا ذلك إنشاء DataFrame الباندا وملء قيم NaN للتأكد من أن كل عمود في DataFrame الناتج بنفس الطول.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: قم بإنشاء Pandas DataFrame من إملاء بأطوال مختلفة
لنفترض أن لدينا القاموس التالي الذي يحتوي على إدخالات بأطوال مختلفة:
#create dictionary whose entries have different lengths some_dict = dict(A=[2, 5, 5, 7, 8], B=[9, 3], C=[4, 4, 2]) #view dictionary print (some_dict) {'A': [2, 5, 5, 7, 8], 'B': [9, 3], 'C': [4, 4, 2]}
إذا حاولنا استخدام الدالة from_dict() لتحويل هذا القاموس إلى إطار بيانات الباندا، فسوف نتلقى خطأ:
import pandas as pd #attempt to create pandas DataFrame from dictionary df = pd. DataFrame . from_dict (some_dict) ValueError : All arrays must be of the same length
نتلقى خطأ يخبرنا أن جميع المصفوفات في القاموس يجب أن تكون بنفس الطول.
للتغلب على هذا الخطأ، يمكننا استخدام بناء الجملة التالي لتحويل القاموس إلى DataFrame:
import pandas as pd #create pandas DataFrame from dictionary df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()])) #view DataFrame print (df) ABC 0 2 9.0 4.0 1 5 3.0 4.0 2 5 NaN 2.0 3 7 NaN NaN 4 8 NaN NaN
لاحظ أننا قادرون على إنشاء DataFrame الباندا بنجاح ويتم تعبئة قيم NaN للتأكد من أن كل عمود بنفس الطول.
إذا كنت تريد استبدال قيم NaN هذه بقيم أخرى (مثل الصفر)، فيمكنك استخدام وظيفة الاستبدال () على النحو التالي:
#replace all NaNs with zeros
df. replace (np. nan , 0, inplace= True )
#view updated DataFrame
print (df)
ABC
0 2 9.0 4.0
1 5 3.0 4.0
2 5 0.0 2.0
3 7 0.0 0.0
4 8 0.0 0.0
لاحظ أنه تم استبدال كل قيمة NaN بصفر.
لا تتردد في استخدام وظيفة الاستبدال () لاستبدال قيم NaN بأي قيمة تريدها.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
الباندا: كيفية تحويل DataFrame إلى قاموس
الباندا: كيفية إعادة تسمية الأعمدة باستخدام القاموس
الباندا: كيفية ملء قيم NaN باستخدام القاموس