Mohamed Elnemr نشر 20 أغسطس 2021 أرسل تقرير نشر 20 أغسطس 2021 لدي بعض البيانات على هيئة dataframe ، وأود ترتيبها بشكل تصاعدي وتنازلي مرة اخري ،كيف يمكن ترتيبها أبجديا بالأسماء؟ 1 اقتباس
0 Ahmed Sharshar نشر 20 أغسطس 2021 أرسل تقرير نشر 20 أغسطس 2021 بما ان البيانات على شكل dataframe، فانه من المستحب التعامل معها استخدام pandas ، وذلك للتسهيل. من أجل ترتيب الاسماء بشكل تصاعدي يمكن استخدام الكود التالي: # استدعاء المكتبة import pandas as pd # قراءة ملف البيانات data = pd.read_csv("data.csv") # ترتيب البيانات بالاسم data.sort_values("Name", axis = 0, ascending = True, inplace = True, na_position ='last') # عرض الترتيب الجديد data لاحظ انه يجب تغيير اسم ملف البيانات تبعا لاسمه الحقيقي. كذلك اذا أردت ترتيبه بشكل تنازلي كل ما عليك هو تغيير ascending من true الي false. لاحظ كذلك ان "Name" هو اسم العمود الذي تريد ترتيبه ويمكنك اختيار اي عمود كما تريد. اقتباس
0 Ali Haidar Ahmad نشر 20 أغسطس 2021 أرسل تقرير نشر 20 أغسطس 2021 السؤال غير واضح تماماً ..لكن سأفترض أن لديك DataFrame وتريد فرز قيمه تصاعدياً أو تنازلياً. في باندا فإن الأداة الأساسية للفرز هي الدالة sort_values: Series.sort_values(by,axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None) حيث أن الوسيط الأول يقبل str أو قائمة من ال str، ويمثل اسم أو قائمة أسماء للفرز على أساسها، إذا كان المحور= 0 أو "الفهرس" فقد يحتوي على مستويات الفهرس و / أو تسميات الأعمدة، إذا كان المحور 1 أو "الأعمدة" فقد يحتوي على مستويات الأعمدة و / أو تسميات الفهرس. الوسيط الثاني هو المحور الذي سيتم الفرز على أساسه، والوسيط الثالث ascending في حال ضبطه على True سيكون الفرز تصاعدي وإلا تنازلي. الوسيط الرابع inplace في حالة ضبطه على True يتم إجراء التعديل على الداتافريم الأساسي أي لايتم إنشاء نسخة. الوسيط الخامس kind هو خوارزمية الفرز المتبعة، فكما نعلم هناك العديد من خوارزميات الفرز وتختلف عن بعضها في التعقيد الزمني للتنفيذ (السرعة) وهناك عدة خوارزميات تدعمها الدالة وهم:{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’} وبشكل افتراضي تكون quicksort . أما الوسيط السادس فهو na_position يحدد المكان الذي سيتم فيه وضع القيمة nan في حال تواجدت في الداتا، ويأخذ وسيطين first أو last، وافتراضياً last. الوسيط السابع ignore_index في حالة ضبطه على True فسيتم تسمية المحور الناتج 0, 1, …, n - 1. وأخيراً ال key: إذا لم يكن None ، فسيتم تطبيق دالة المفتاح على قيم الداتا قبل الفرز. أي أنه مشابه تماماً للوسيط key الموجود في الدالة sorted: import pandas as pd import numpy as np df = pd.DataFrame({ 'c1': ['A', 'A', 'B', np.nan, 'D', 'C'], 'c2': [5, 4, 1, 7, 9, 4], 'c3': [4, 9, 0, 2, 4, 2], 'c4': ['a', 'B', 'c', 'D', 'e', 'F'] }) df """ c1 c2 c3 c4 0 A 5 4 a 1 A 4 9 B 2 B 1 0 c 3 NaN 7 2 D 4 D 9 4 e 5 C 4 2 F """ # الفرز حسب أول عمود df.sort_values(by=['c1']) # تصاعدي """ c1 c2 c3 c4 0 A 5 4 a 1 A 4 9 B 2 B 1 0 c 5 C 4 2 F 4 D 9 4 e 3 NaN 7 2 D """ df.sort_values(by=['c1']) # تنازلي df.sort_values(by=['c1'],ascending=False) # تصاعدي """ c1 c2 c3 c4 4 D 9 4 e 5 C 4 2 F 2 B 1 0 c 0 A 5 4 a 1 A 4 9 B 3 NaN 7 2 D """ وهكذا يمكنك الفرز بالشكل الذي تطلبه وحسب العمود الذي تريده، كما ويمكنك الفرز على أساس عدة أعمدة بالشكل: df.sort_values(by=['col1', 'col2']) 1 اقتباس
السؤال
Mohamed Elnemr
لدي بعض البيانات على هيئة dataframe ، وأود ترتيبها بشكل تصاعدي وتنازلي مرة اخري ،كيف يمكن ترتيبها أبجديا بالأسماء؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.