كيفية الفرز حسب أعمدة متعددة في الباندا (مع أمثلة)


يمكنك استخدام بناء الجملة الأساسي التالي لفرز DataFrame الباندا حسب أعمدة متعددة:

 df = df. sort_values ([' column1 ', ' column2 '], ascending=( False , True ))

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: الفرز حسب أعمدة متعددة في Pandas

لنفترض أن لدينا DataFrame الباندا التالية:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [14, 20, 9, 20, 25, 29, 20, 25],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

        points assists rebounds
0 14 5 11
1 20 7 8
2 9 7 10
3 20 9 6
4 25 12 6
5 29 9 5
6 20 9 9
7 25 4 12

يمكننا استخدام الصيغة التالية لفرز سطور DataFrame عن طريق زيادة النقاط ثم تقليل التمريرات :

 #sort by points ascending, then assists ascending
df = df. sort_values ([' points ', ' assists '])

#view updated DataFrame
df

	points assists rebounds
2 9 7 10
0 14 5 11
1 20 7 8
3 20 9 6
6 20 9 9
7 25 4 12
4 25 12 6
5 29 9 5

لاحظ أن الخطوط مرتبة حسب نقاط تصاعدية (من الأصغر إلى الأكبر)، ثم تمريرات تصاعدية.

يمكننا أيضًا استخدام الوسيطة التصاعدية لتحديد ما إذا كان سيتم فرز كل عمود تصاعديًا أم تنازليًا:

 #sort by points descending, then assists ascending
df = df. sort_values ([' points ', ' assists '], ascending = ( False , True )))

#view updated DataFrame
df

        points assists rebounds
5 29 9 5
7 25 4 12
4 25 12 6
1 20 7 8
3 20 9 6
6 20 9 9
0 14 5 11
2 9 7 10

لاحظ أن الخطوط مرتبة حسب النقاط التنازلية (من الأكبر إلى الأصغر)، ثم التمريرات التصاعدية.

في هذه الأمثلة، قمنا بفرز DataFrame حسب عمودين، ولكن يمكننا استخدام بناء الجملة هذا بالضبط للفرز حسب عدد الأعمدة التي نريدها.

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة Pandassort_values() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

الباندا: كيفية الفرز حسب التاريخ
الباندا: كيفية فرز الأعمدة حسب الاسم
الباندا: كيفية الفرز حسب كل من الفهرس والعمود

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *