Maram Jouriah نشر 2 مايو 2021 أرسل تقرير نشر 2 مايو 2021 (معدل) لنفرض لدي اطار البيانات التالي df = pd.DataFrame([[1, 2, 'March'],[5, 6, 'Dec'],[3, 4, 'April']], columns=['a','b','m']) يكون الخرج a b m 0 1 2 March 1 5 6 Dec 2 3 4 April اردت ترتيب الصفوف حسب الشهر كيف يمكنني ذلك a b m 0 1 2 March 2 3 4 April 1 5 6 Dec تم التعديل في 11 مارس 2022 بواسطة Ali Haidar Ahmad توضيح عنوان السؤال 1 اقتباس
0 Wael Aljamal نشر 2 مايو 2021 أرسل تقرير نشر 2 مايو 2021 يمكن تطبيق مفهوم التصنيف Categorical على حقل معين ومن ثم ترتيب إطار البيانات على أساسه: df['m'] = pd.Categorical(df['m'], ["March", "April", "Dec"]) df.sort_values("m") out: = a b m 0 1 2 March 2 3 4 April 1 5 6 Dec Categoricals : هو نمط بيانات يستخدم في العمليات الإحصائية، ويكون له مجموعة ثابتة من الخيارات. يمكن التعلم أكثر عن نمط البيانات هذا من هنا: Categoricals اقتباس
0 Ali Haidar Ahmad نشر 11 مارس 2022 أرسل تقرير نشر 11 مارس 2022 سننشئ أولاً إطار البيانات: import pandas as pd df = pd.DataFrame([[1, 2, 'March'], [5, 6, 'Dec'], [3, 4, 'April']], columns=['a','b','m']) df """ a b m 0 1 2 March 1 5 6 Dec 2 3 4 April """ 1. فرز البيانات وفقًا لقيم عمود محدد: باستخدام الدالة df.sort_values، يمكنك فرز نقاط البيانات (الصفوف) بترتيب تصاعدي أو تنازلي، وعندما لا تحدد طريقة الترتيب، فإنه يعتبره افتراضيًا ترتيبًا تصاعديًّا. # الفرز بشكل افتراضي df2 = df.sort_values('m') print(df2) """ a b m 2 3 4 April 1 5 6 Dec 0 1 2 March """ في حالة رغبتك في تحديث إطار البيانات الحالي (أي عدم إنشاء نسخة والتعديل عليها)، استخدم inplace = True. df.sort_values('m', inplace=True) print(df) إذا أردت الفرز بترتيب تنازلي، استخدم ascending=False. يمكنك أيضًا تحديد أوامر فرز مختلفة لكل تسمية label. df2 = df.sort_values('m', ascending=False) print(df2) 2. فرز البيانات وفقًا لعدة أعمدة: تدعم الدالة السابقة أيضًا الفرز اعتمادًا على قيم أعمدة متعددة في وقت واحد، وذلك من خلال تمرير قائمة بأسماء هذه الأعمدة إلى الوسيط by. df2 = df.sort_values(by=['m','b']) print(df2) - قد تحتوي بعض الأعمدة على قيم مفقودة Nan، هذه القيم يتم وضعها في الأسفل عند القيام بعملية الفرز، لكن في حال أردت أن تضعها في بداية إطار البيانات، فاستخدم الوسيط na_position='first'. df2 = df.sort_values(by=['Courses','Fee'], na_position='first') print(df2) - في حالة رغبتك في تطبيق دالة مخصصة أو أي دالة موجودة للفرز، يمكنك استخدام الوسيط key. المثال أدناه يحول الدورات إلى أحرف صغيرة ويقوم بالفرز. مثلاً هنا نقوم بتطبيق دالة تقوم بتحويل كل الأحرف في كل شهر إلى أحرف صغيرة قبل تطبيق عملية الفرز. df2 = df.sort_values(by='m', key=lambda col: col.str.lower()) print(df2) - أخيرًا، يجب أن تعلم أنه بعد كل عملية فرز من خلال الدالة السابقة فإن ترتيب الفهرس سيصبح عشوائي، لذا إن كنت تحتاج إلى قيم فهرس مرتبة لابد لك من إعادة ضبط قيم الفهرس من جديد أو إخبار هذه الدالة بأن تترك قيم عمود الفهرس من دون تغيير من خلال الوسيط ignore_index=True. df2 = df.sort_values(by='m', ignore_index=True) اقتباس
السؤال
Maram Jouriah
لنفرض لدي اطار البيانات التالي
يكون الخرج
اردت ترتيب الصفوف حسب الشهر كيف يمكنني ذلك
توضيح عنوان السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.