English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ترتيب Pandas

يوجد طريقتين لترتيب Pandas:

بالعلامة بالقيمة الفعلية

نحن نرى مثالاً أدناه.

 import pandas as pd
 import numpy as np
 unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
 mns=['col2','col1'])
 print(unsorted_df)

نتائج التنفيذ:

    col2       col1
1  -2.063177   0.537527
4   0.142932  -0.684884
6   0.012667  -0.389340
2  -0.548797   1.848743
3  -1.044160   0.837381
5   0.385605   1.300185
9   1.031425  -1.002967
8  -0.407374  -0.435142
0   2.237453  -1.067139
7  -1.445831  -1.701035

في unsorted_df، العلامات والقيم ليست مرتبة. دعونا نرى كيف يمكن ترتيبها.

ترتيب العلامات

باستخدام طريقة sort_index()، يمكن ترتيب DataFrame عن طريق تمرير معامل المحور والترتيب. بشكل افتراضي، يتم ترتيب العلامات الموجودة في الصفوص بالترتيب المتدرج.

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
    mns = ['col2','col1'])
 sorted_df=unsorted_df.sort_index()
 print(sorted_df)

نتائج التنفيذ:

     col2		col1
9	0.825697	0.374463
8	-1.699509	0.510373
7	-0.581378	0.622958
6	-0.202951	0.954300
5	-1.289321	-1.551250
4	1.302561	0.851385
3	-0.157915	-0.388659
2	-1.222295	0.166609
1	0.584890	-0.291048
0	0.668444	-0.061294

ترتيب الترتيب

باستخدام القيمة الحالية للبوليندا يمكن التحكم في ترتيب الترتيب. دعونا نأخذ مثالاً لفهم نفس الحالة.

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
    mns = ['col2','col1'])
 sorted_df = unsorted_df.sort_index(ascending=False)
 print(sorted_df)

نتائج التنفيذ:

     col2		col1
9	0.825697	0.374463
8	-1.699509	0.510373
7	-0.581378	0.622958
6	-0.202951	0.954300
5	-1.289321	-1.551250
4	1.302561	0.851385
3	-0.157915	-0.388659
2	-1.222295	0.166609
1	0.584890	-0.291048
0	0.668444	-0.061294

ترتيب الصف

من خلال تمرير معامل المحور 0 أو 1، يمكن ترتيب العناوين في الصف. بشكل افتراضي، axis = 0 يتم ترتيب الصف. دعونا نأخذ مثالاً لفهم نفس الحالة.

 import pandas as pd
 import numpy as np
  
 unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
    mns = ['col2','col1'])
  
 sorted_df = unsorted_df.sort_index(axis=1)
 print(sorted_df)

نتائج التنفيذ:

     col1		col2
1	-0.291048	0.584890
4	0.851385	1.302561
6	0.954300	-0.202951
2	0.166609	-1.222295
3	-0.388659	-0.157915
5	-1.551250	-1.289321
9	0.374463	0.825697
8	0.510373	-1.699509
0	-0.061294	0.668444
7	0.622958	-0.581378

ترتيب القيم

مثل ترتيب مؤشر، sort_values() طريقة ترتيب القيم. إنه يتقبل معامل "by"، والذي يستخدم اسم العمود الذي يتم ترتيب القيم به DataFrame.

import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
    sorted_df = unsorted_df.sort_values(by='col1')
 print(sorted_df)

نتائج التنفيذ:

   col1  col2
1    1    3
2    1    2
3    1    4
0    2    1

لاحظ، تم ترتيب قيم col1، وقد تم تغيير القيم المشار إليها في col2 والسجلات إلى جانب col1. لذلك، يبدو أنها غير منقسمة.

'by' المستويات تأخذ قائمة القيم من الأعمدة.

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
    sorted_df = unsorted_df.sort_values(by=['col1','col2'])
 print(sorted_df)

نتائج التنفيذ:

  col1 col2
2   1   2
1   1   3
3   1   4
0   2   1

خوارزميات الترتيب

sort_values() يقدم إعدادًا للخيار المحدد من خوارزميات mergesort، heapsort وquicksort. هو الخوارزمية المستقرة الوحيدة.

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
 sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort')
 print(sorted_df)

نتائج التنفيذ:

  col1 col2
1    1    3
2    1    2
3    1    4
0    2    1