الحفاظ على الأعمدة الأخرى أثناء عمليات التجميع
عند إجراء عملية تجميع على إطار بيانات الباندا، غالبًا ما يكون من الضروري الاحتفاظ بالأعمدة التي ليست كذلك المشاركة في عملية التجميع أو التجميع. افتراضيًا، يتم إسقاط هذه الأعمدة الأخرى عند اكتمال العملية. قد يكون هذا مشكلة إذا كانت الأعمدة المحتفظ بها تحتوي على معلومات قيمة.
ضع في اعتبارك إطار البيانات التالي:
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