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

كيف يمكنني الحفاظ على أعمدة أخرى في Pandas DataFrame أثناء عملية التجميع؟

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

How can I maintain other columns in a Pandas DataFrame during a groupby operation?

الحفاظ على الأعمدة الأخرى أثناء عمليات التجميع

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

ضع في اعتبارك إطار البيانات التالي:

    item    diff   otherstuff
   0   1       2            1
   1   1       1            2
   2   1       3            7
   3   2      -1            0
   4   2       1            3
   5   2       4            9
   6   2      -6            2
   7   3       0            0
   8   3       2            9

إذا أردنا تجميع إطار البيانات حسب عمود "العنصر" والعثور على الحد الأدنى لقيمة عمود "الفرق"، فسيبدو إطار البيانات الناتج كما يلي:

    item   diff
   0   1      1           
   1   2     -6           
   2   3      0                 

لاحظ أنه تم حذف عمود "الأشياء الأخرى". للاحتفاظ بهذا العمود، يمكننا استخدام طريقة idxmin() للحصول على مؤشرات عناصر الحد الأدنى للفرق، ثم تحديد تلك:

>>> df.loc[df.groupby("item")["diff"].idxmin()]
   item  diff  otherstuff
1     1     1           2
6     2    -6           2
7     3     0           0

[3 rows x 3 columns]

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

>>> df.sort_values("diff").groupby("item", as_index=False).first()
   item  diff  otherstuff
0     1     1           2
1     2    -6           2
2     3     0           0

[3 rows x 3 columns]

ستنتج كلتا الطريقتين النتيجة المرجوة، مع الاحتفاظ بعمود "الأشياء الأخرى". ضع في اعتبارك أن المؤشرات الناتجة قد تكون مختلفة على الرغم من أن محتوى الصف هو نفسه.

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

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

Copyright© 2022 湘ICP备2022001581号-3