मुख्य सामग्री पर जाएँ

Pandas Sort Values: एक संपूर्ण हाउ-टू

कॉलम मानों के आधार पर पंक्तियों को पुनःक्रमित करने के लिए sort_values() का उपयोग करें। DataFrame के इंडेक्स के आधार पर पंक्तियों को पुनर्व्यवस्थित करने के लिए sort_index() लागू करें। अलग-अलग कोणों से डेटा का पता लगाने के लिए दोनों तरीकों को मिलाएँ।
· 4 मि॰ पढ़ें

AI के साथ खोजें

किसी DataFrame में दिलचस्प डेटा खोजना अक्सर आसान हो जाता है यदि आप पंक्तियों के क्रम को बदल दें। आप .sort_values() में कॉलम का नाम पास करके पंक्तियों को क्रमबद्ध कर सकते हैं।

जहाँ पंक्तियों का मान समान हो (यदि आप किसी श्रेणीबद्ध चल पर सॉर्ट करते हैं तो यह सामान्य है), वहाँ आप किसी दूसरे कॉलम पर सॉर्ट करके टाई तोड़ना चाह सकते हैं। आप कॉलम नामों की एक सूची पास करके इस तरह कई कॉलम पर सॉर्ट कर सकते हैं।

Pandas कॉलम सॉर्ट का उदाहरण

sort_values() के साथ कॉलम मानों के आधार पर पंक्तियाँ सॉर्ट करना

आप पंक्तियों को इस तरह क्रमबद्ध कर सकते हैं कि DataFrame के शीर्ष पर सबसे दिलचस्प डेटा आ जाए।

एकल कॉलम के आधार पर सॉर्ट करें

उदाहरण के लिए, जब हम dogs DataFrame के weight_kg कॉलम पर sort_values() लगाते हैं, तो सबसे ऊपर सबसे हल्का कुत्ता आता है—चिहुआहुआ Stella—और सबसे नीचे सबसे भारी कुत्ता—सेंट बर्नार्ड Bernie।

dogs.sort_values("weight_kg")
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

ascending आर्ग्युमेंट को False करने पर डेटा उल्टी दिशा में सॉर्ट होगा, यानी सबसे भारी से सबसे हल्के कुत्ते तक।

dogs.sort_values("weight_kg", ascending=False)
      name        breed  color  height_cm  weight_kg date_of_birth
6   Bernie  St. Bernard  White         77         74    2018-02-27
4      Max     Labrador  Black         59         29    2017-01-20
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
5   Stella    Chihuahua    Tan         18          2    2015-04-20

एकाधिक कॉलम के आधार पर सॉर्ट करें

हम sort_values में कॉलम नामों की सूची पास करके कई चरों के आधार पर सॉर्ट कर सकते हैं। यहाँ, हम पहले वज़न, फिर कद के आधार पर सॉर्ट करते हैं। अब Charlie, Lucy, और Bella, भले ही उनका वज़न समान है, सबसे छोटे से सबसे लंबे क्रम में हैं।

dogs.sort_values(["weight_kg", "height_cm"])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
0    Bella     Labrador  Brown         56         24    2013-07-01
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

मानों के सॉर्ट होने की दिशा बदलने के लिए, ascending आर्ग्युमेंट में सूची पास करें, ताकि हर चर के लिए सॉर्टिंग की दिशा निर्दिष्ट की जा सके। अब Charlie, Lucy, और Bella सबसे लंबे से सबसे छोटे क्रम में हैं।

dogs.sort_values(["weight_kg", "height_cm"], ascending=[True, False])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
1  Charlie       Poodle  Black         43         24    2016-09-16
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

sort_index() के साथ रो इंडेक्स के आधार पर सॉर्ट करना

कभी-कभी आप अलग-अलग कॉलम की बजाय पंक्ति लेबल्स (अर्थात, DataFrame का इंडेक्स) के आधार पर पंक्तियों को पुनःक्रमित करना चाहेंगे। ऐसे में आप sort_values() के बजाय sort_index() मेथड का उपयोग कर सकते हैं। याद रखें, डिफॉल्ट रूप से sort_index() आपकी पंक्तियों को उनके इंडेक्स के आधार पर आरोही क्रम में सॉर्ट करता है:

# Sort rows by their index (ascending)
dogs_sorted = dogs.sort_index()
print(dogs_sorted)

यदि आपको पंक्तियों को अवरोही क्रम में सॉर्ट करना हो, तो बस ascending=False पास करें:

# Sort rows by their index (descending)
dogs_sorted_desc = dogs.sort_index(ascending=False)
print(dogs_sorted_desc)

इसी तरह, यदि आपके पास बहु-स्तरीय (हाइरार्किकल) इंडेक्स है, तो sort_index() कई स्तरों को सॉर्ट करके उसे भी संभाल सकता है। आपको बस level या ascending पैरामीटर में सूची पास करनी है (ठीक वैसे ही जैसे पहले हमने sort_values() के लिए सूची पास की थी):

# Sort rows by multiple levels of a multi-level index
dogs_sorted_multi = dogs.sort_index(level=[0, 1], ascending=[True, False])
print(dogs_sorted_multi)

Pandas Sort Values इंटरैक्टिव उदाहरण

निम्न उदाहरण में, आप homelessness को बेघर व्यक्तियों की संख्या के आधार पर सबसे कम से सबसे अधिक तक सॉर्ट करेंगे और इसे homelessness_ind के रूप में सुरक्षित करेंगे। अंत में, आप सॉर्ट किए गए DataFrame का हेड प्रिंट करेंगे।

# Sort homelessness by individuals
homelessness_ind = homelessness.sort_values("individuals")

# Print the top few rows
print(homelessness_ind.head())

जब हम उपरोक्त कोड चलाते हैं, तो यह निम्नलिखित परिणाम देता है:

                region         state  individuals  family_members  state_pop
50            Mountain       Wyoming        434.0           205.0     577601
34  West North Central  North Dakota        467.0            75.0     758080
7       South Atlantic      Delaware        708.0           374.0     965479
39         New England  Rhode Island        747.0           354.0    1058287
45         New England       Vermont        780.0           511.0     624358

खुद आज़माएँ।

डेटा के सॉर्टिंग और सबसेटिंग के बारे में अधिक जानने के लिए, हमारे कोर्स Data Manipulation with pandas का यह वीडियो देखें।

यह सामग्री DataCamp के Data Manipulation with pandas कोर्स से ली गई है, जिसे Maggie Matsui और Richie Cotton ने तैयार किया है।

आगे की सीख

हमने इस लेख में, अन्य बातों के साथ, यह सीखा कि sort_index() बनाम sort_values() का उपयोग कब करें: जब आप पंक्तियों को कॉलम मानों के आधार पर पुनःक्रमित करना चाहें तो sort_values() का उपयोग करें; जब आप पंक्तियों को रो लेबल्स (DataFrame के इंडेक्स) के आधार पर पुनःक्रमित करना चाहें तो sort_index() का उपयोग करें।

सीखते रहने के लिए हमारे पास कई अन्य उपयोगी pandas ट्यूटोरियल हैं, जिनमें The ultimate Guide to Pandas for Beginners भी शामिल है, ताकि आप अभ्यास जारी रख सकें। हमारे पास आम समस्याओं के लिए अन्य विशिष्ट हाउ-टू भी हैं, जैसे How to Import CSV Data into Pandas और How to Join DataFrames in Pandas। साथ ही, अपने कौशल में लगातार सुधार के लिए हमारा Python Programming स्किल ट्रैक करना न भूलें। 

विषय