"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء إطار بيانات Pandas من قاموس يحتوي على مصفوفات ذات أطوال مختلفة؟

كيفية إنشاء إطار بيانات Pandas من قاموس يحتوي على مصفوفات ذات أطوال مختلفة؟

تم النشر بتاريخ 2024-11-11
تصفح:478

How to Create a Pandas Dataframe from a Dictionary with Arrays of Varying Lengths?

إنشاء إطار بيانات من قاموس بمصفوفات ذات أطوال متفاوتة

يتمثل التحدي الذي يواجهنا في إنشاء إطار بيانات يحتوي على أعمدة تتكون من مصفوفة متفاوتة الطول القيم المستخرجة من القاموس. ولتحقيق ذلك، دعونا نستكشف حلاً باستخدام بايثون.

في بايثون 3.x وما فوق، يمكن استخدام مقتطف الكود التالي:

import pandas as pd
import numpy as np

# Define a dictionary with key-value pairs representing numpy arrays
d = {
    "A": np.random.randn(10),
    "B": np.random.randn(12),
    "C": np.random.randn(8)
}

# Create a dataframe by converting each key-value pair to a series
df = pd.DataFrame(
    dict([
        (k, pd.Series(v))
        for k, v in d.items()
    ])
)

# Display the resulting dataframe
print(df)

يقوم هذا الكود بإنشاء إطار بيانات يحتوي على الأعمدة "A" و"B" و"C"، كل منها يحمل قيم صفيف numpy المقابلة من القاموس. إذا كانت المصفوفات ذات أطوال مختلفة، فإنها تتم محاذاتها تلقائيًا، مما يؤدي إلى توسيع المصفوفات الأقصر بقيم NaN كحشوة.

في Python 2.x، يلزم إجراء تعديل بسيط:

import pandas as pd
import numpy as np

# Define a dictionary with key-value pairs representing numpy arrays
d = {
    "A": np.random.randn(10),
    "B": np.random.randn(12),
    "C": np.random.randn(8)
}

# Create a dataframe by converting each key-value pair to a series
df = pd.DataFrame(
    dict([
        (k, pd.Series(v))
        for k, v in d.iteritems()
    ])
)

# Display the resulting dataframe
print(df)

في Python 2.x، يتم استخدام الدالة iteritems() بدلاً من items() للتكرار على أزواج القيمة الرئيسية في القاموس.

باستخدام هذا الأسلوب، يمكنك بسهولة إنشاء إطارات بيانات تحتوي على أعمدة تحتوي على صفائف ذات أطوال مختلفة، مما يضمن محاذاة البيانات ومعالجتها بشكل صحيح.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3