يتطلب التعامل مع القواميس ذات مصفوفات ذات أطوال غير متساوية في Pandas نهجًا مخصصًا. عند محاولة إنشاء DataFrame بحيث يمثل كل عمود مصفوفة داخل القاموس، قد يواجه المرء خطأ ValueError: "يجب أن تكون جميع المصفوفات بنفس الطول."
للتحايل على هذا في هذه المشكلة، فإننا نستفيد من كائنات سلسلة Pandas التي يمكنها الاحتفاظ بمصفوفات ذات أطوال مختلفة. من خلال تحويل كل قيمة قاموس إلى سلسلة، يمكننا تخزين المصفوفات بشكل فعال بغض النظر عن أطوالها. يوضح مقتطف التعليمات البرمجية التالي هذا الأسلوب:
import pandas as pd import numpy as np # Sample data generated via a reproducible seed np.random.seed(2023) data = {k: np.random.randn(v) for k, v in zip("ABCDEF", [10, 12, 15, 17, 20, 23])} # Convert dictionary values to Series objects series_dict = {k: pd.Series(v) for k, v in data.items()} # Create DataFrame using these Series objects df = pd.DataFrame(series_dict)
عند العمل مع صفائف ذات أطوال مختلفة، من الشائع مواجهة قيم مفقودة حيث لا تستطيع المصفوفات الأقصر ملء الخلايا المتبقية. افتراضيًا، يقوم Pandas بملء هذه الفجوات بقيم NaN (ليس رقمًا). يحافظ هذا السلوك على البيانات الأصلية مع توفير بنية متسقة للتحليل.
إذا رغبت في ذلك، يمكنك تخصيص معالجة القيم المفقودة باستخدام معلمة القيم المفقودة في DataFrame ( ) منشئ. على سبيل المثال، لاستبدال القيم المفقودة بالأصفار بدلاً من NaN، يمكنك تحديد Missing_values=0 كما هو موضح أدناه:
df = pd.DataFrame(series_dict, missing_values=0)
يوضح الناتج التالي DataFrame الذي تم إنشاؤه باستخدام الطريقة الموضحة أعلاه:
print(df)
A B C D E F 0 0.711674 -1.076522 -1.502178 -1.519748 0.340619 0.051132 1 -0.324485 -0.325682 -1.379593 2.097329 -1.253501 -0.238061 2 -1.001871 -1.035498 -0.204455 0.892562 0.370788 -0.208009 3 0.236251 -0.426320 0.642125 1.596488 0.455254 0.401304 4 -0.102160 -1.029361 -0.181176 -0.638762 -2.283720 0.183169 ... ... ... ... ... ... ... 18 NaN NaN NaN NaN NaN NaN 19 NaN NaN NaN NaN NaN NaN 20 NaN NaN NaN NaN NaN NaN 21 NaN NaN NaN NaN NaN NaN 22 NaN NaN NaN NaN NaN NaN 23 rows × 6 columns
كما يمكنك ملاحظة، تؤدي المصفوفات الأقصر إلى قيم NaN في الخلايا المقابلة، مما يوفر تمثيلاً شاملاً لبياناتك مع الحفاظ على التنسيق الجدولي المطلوب.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3