English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يوجد طريقتين لترتيب 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