في Python، من الممكن إنشاء DataFrame من قاموس حيث يحتوي كل إدخال على مصفوفة Numpy. ومع ذلك، تنشأ التحديات عندما تختلف أطوال المصفوفة بين الإدخالات. بشكل افتراضي، يتطلب Pandas مصفوفات ذات طول موحد، مما يؤدي إلى أخطاء مثل "ValueError: يجب أن تكون المصفوفات كلها بنفس الطول." في هذه المشكلة، يمكننا الاستفادة من قدرة Pandas على استخدام قيم NaN (Not-a-Number) كعناصر نائبة للبيانات المفقودة. من خلال الاستفادة من ذلك، يمكننا إنشاء DataFrame بشكل فعال مع أعمدة ذات أطوال مختلفة.
لتحقيق ذلك، يمكننا تحويل كل إدخال في القاموس إلى سلسلة Pandas، وهي مصفوفة أحادية البعد يمكنها التعامل بسلاسة مع القيم المفقودة. من خلال تغليف عناصر القاموس في تعبير منشئ واستخدام مُنشئ السلسلة، يمكننا إنشاء قاموس لكائنات السلسلة.استيراد الباندا كـ pd استيراد numpy كـ np # نموذج بيانات بأطوال مصفوفة غير متساوية البيانات = { 'أ': np.random.randn(5)، 'ب': np.random.randn(8)، 'ج': np.random.randn(4) } # تحويل عناصر القاموس إلى سلسلة series_dict = dict((k, pd.Series(v)) لـ k, v في data.items()) # إنشاء DataFrame من قاموس السلسلة df = pd.DataFrame(series_dict)
النتيجة:
في [1]: df خارج[1]: أ ب ج 0 1.162543 1.681243 0.191287 1 0.459621 -0.141198 -0.109864 2 -0.866704 -0.128677 -0.511496 3 1.222436 -0.371449 -0.705894 4 -0.980584 1.255133 نان 5 نان -0.351051 نان 6 نان 0.443017 نان 7 NaN -1.053693 NaNimport pandas as pd import numpy as np # Sample data with uneven array lengths data = { 'A': np.random.randn(5), 'B': np.random.randn(8), 'C': np.random.randn(4) } # Convert dictionary items to Series series_dict = dict((k, pd.Series(v)) for k, v in data.items()) # Create DataFrame from the dictionary of Series df = pd.DataFrame(series_dict)كما هو واضح، يحتوي DataFrame على قيم مفقودة (NaN) حيث تختلف أطوال المصفوفة، مما يسمح لنا بإنشاء DataFrame بأطوال أعمدة مختلفة من قاموس بأطوال مصفوفة مختلفة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3