لتحقيق هذا الهدف بشكل أكثر فعالية في باندا، يمكنك استخدام الوظيفة explode
التي تم تقديمها في إصدار باندا 0.25.0 وما بعده. هذه الوظيفة تنفجر (explode) القيم في قائمة لكل صف. ولكن، بما أنك تستخدم إصدارًا قديمًا من باندا، فيمكننا استخدام حلاً بديلًا يعتمد على تكرار الصفوف وفقًا لعناصر القوائم في العمود A.
اليك الكود البديل:
-
كيف احقق اهدافي: 5 خطوات لفعل ذلك03/11/2023
-
تنفيذ مهمة مجدولة في ASP.NET Core MVC07/04/2024
pythonimport pandas as pd
# بناء DataFrame الأصلي
df = pd.DataFrame({'A': [[1, 2], [5, 6]], 'B': [10, -20]})
# قائمة لتخزين الصفوف المكررة
rows = []
# تكرار الصفوف وفقًا لعناصر القوائم في العمود A
for index, row in df.iterrows():
for item in row['A']:
new_row = row.copy()
new_row['A'] = item
rows.append(new_row)
# بناء DataFrame جديد من الصفوف المكررة
result = pd.DataFrame(rows, columns=df.columns)
print(result)
هذا الكود يبني DataFrame جديدًا باستخدام قائمة rows
لتخزين الصفوف المكررة. ثم، يكرر كل صف في الإطار الأصلي وفقًا لعناصر القوائم في العمود A، وينشئ صفًا جديدًا لكل عنصر يتم إضافته إلى rows
. وأخيرًا، يقوم ببناء DataFrame جديد باستخدام الصفوف المكررة.
المزيد من المعلومات
بالطبع، هنا بعض المعلومات الإضافية حول كيفية تنفيذ الوظيفة explode
في باندا إصدار 0.25.0 وما بعدها، وهي الطريقة الأكثر فعالية لتحقيق هدفك:
pythonimport pandas as pd
# بناء DataFrame الأصلي
df = pd.DataFrame({'A': [[1, 2], [5, 6]], 'B': [10, -20]})
# تنفيذ explode على العمود A
result = df.explode('A')
print(result)
هذا الكود يستخدم الوظيفة explode
المدمجة في باندا لتنفيذ التحويل المطلوب. تعمل الوظيفة explode
على تفجير (explode) القيم في القائمة لتوليد صفوف منفصلة لكل قيمة في القائمة.