الباندا: فرز dataframe حسب الفهرس والعمود
يمكنك استخدام بناء الجملة التالي لفرز DataFrame الباندا حسب الفهرس والعمود:
df = df. sort_values (by = [' column_name ', ' index '], ascending = [ False , True ])
توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا.
أمثلة: فرز DataFrame حسب الفهرس والعمود
يوضح التعليمة البرمجية التالية كيفية فرز DataFrame الباندا حسب العمود المسمى النقاط ثم حسب عمود الفهرس :
import pandas as pd #createDataFrame df = pd. DataFrame ({' id ': [1, 2, 3, 4, 5, 6, 7, 8], ' points ': [25, 15, 15, 14, 20, 20, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}). set_index (' id ') #view first few rows df. head () points assists rebounds id 1 25 5 11 2 15 7 8 3 15 7 10 4 14 9 6 5 20 12 6 #sort by points and then by index df. sort_values (by = [' points ', ' id '], ascending = [ False , True ]) points assists rebounds id 8 29 4 12 1 25 5 11 7 25 9 9 5 20 12 6 6 20 9 5 2 15 7 8 3 15 7 10 4 14 9 6
يتم فرز DataFrame الناتج حسب النقاط بترتيب تنازلي ثم حسب الفهرس بترتيب تصاعدي (إذا كان هناك لاعبان يسجلان نفس عدد النقاط).
لاحظ أنه إذا لم نستخدم الوسيطة التصاعدية ، فسيستخدم كل عمود ترتيبًا تصاعديًا كطريقة فرز افتراضية:
#sort by points and then by index df. sort_values (by = [' points ', ' id ']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
إذا كان عمود الفهرس غير مسمى حاليًا، فيمكنك إعادة تسميته ثم فرزه وفقًا لذلك:
#sort by points and then by index df. rename_axis (' index '). sort_values (by = [' points ', ' id ']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
مصادر إضافية
الباندا: كيفية فرز الأعمدة حسب الاسم
الباندا: فرز DataFrame حسب التاريخ
الباندا: كيفية إزالة الصفوف المكررة