पांडा: स्ट्रिंग कॉलम के आधार पर डेटाफ़्रेम को कैसे क्रमबद्ध करें


आप किसी विशेष स्ट्रिंग कॉलम के मानों के आधार पर पांडा डेटाफ़्रेम की पंक्तियों को क्रमबद्ध करने के लिए निम्न विधियों का उपयोग कर सकते हैं:

विधि 1: स्ट्रिंग कॉलम के अनुसार क्रमबद्ध करें (जब कॉलम में केवल अक्षर हों)

 df = df. sort_values (' my_string_column ')

विधि 2: स्ट्रिंग कॉलम के अनुसार क्रमबद्ध करें (जब कॉलम में वर्ण और संख्याएँ हों)

 #create 'sort' column that contains digits from 'my_string_column'
df[' sort '] = df[' my_string_column ']. str . extract (' (\d+) ', expand= False ). astype (int)

#sort rows based on digits in 'sort' column
df = df. sort_values (' sort ')

निम्नलिखित उदाहरण दिखाते हैं कि व्यवहार में प्रत्येक विधि का उपयोग कैसे करें।

उदाहरण 1: स्ट्रिंग कॉलम के अनुसार क्रमबद्ध करें (जब कॉलम में केवल अक्षर हों)

मान लीजिए कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम है जिसमें किराने की दुकान पर विभिन्न उत्पादों की बिक्री के बारे में जानकारी है:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' product ': ['Apples', 'Oranges', 'Bananas', 'Lettuce', 'Beans'],
                   ' sales ': [18, 22, 19, 14, 29]})

#view DataFrame
print (df)

   product sales
0 Apples 18
1 Oranges 22
2 Bananas 19
3 Lettuce 14
4 Beans 29

हम उत्पाद कॉलम में स्ट्रिंग्स के आधार पर डेटाफ़्रेम की पंक्तियों को क्रमबद्ध करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

 #sort rows from A to Z based on string in 'product' column
df = df. sort_values (' product ')

#view updated DataFrame
print (df)

   product sales
0 Apples 18
2 Bananas 19
4 Beans 29
3 Lettuce 14
1 Oranges 22

ध्यान दें कि पंक्तियों को अब उत्पाद कॉलम में स्ट्रिंग्स के आधार पर A से Z तक क्रमबद्ध किया गया है।

यदि आप इसके बजाय Z से A तक क्रमबद्ध करना चाहते हैं, तो बस आरोही=गलत तर्क जोड़ें:

 #sort rows from Z to A based on string in 'product' column
df = df. sort_values (' product ', ascending= False )

#view updated DataFrame
print (df)

   product sales
1 Oranges 22
3 Lettuce 14
4 Beans 29
2 Bananas 19
0 Apples 18

ध्यान दें कि पंक्तियाँ अब उत्पाद कॉलम में स्ट्रिंग्स के आधार पर Z से A तक क्रमबद्ध हैं।

उदाहरण 2: स्ट्रिंग कॉलम के अनुसार क्रमबद्ध करें (जब कॉलम में वर्ण और संख्याएँ हों)

मान लीजिए कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम है जिसमें किराने की दुकान पर विभिन्न उत्पादों की बिक्री के बारे में जानकारी है:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' product ': ['A3', 'A5', 'A22', 'A50', 'A2', 'A7', 'A9', 'A13'],
                   ' sales ': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  product sales
0 A3 18
1 A5 22
2 A22 19
3 A50 14
4 A2 14
5 A7 11
6 A9 20
7 A13 28

ध्यान दें कि उत्पाद कॉलम में स्ट्रिंग्स में अक्षर और संख्याएँ दोनों शामिल हैं।

यदि हम उत्पाद कॉलम में मानों का उपयोग करके डेटाफ़्रेम की पंक्तियों को क्रमबद्ध करने का प्रयास करते हैं, तो स्ट्रिंग्स को संख्याओं के आधार पर सही क्रम में क्रमबद्ध नहीं किया जाएगा:

 import pandas as pd

#sort rows based on strings in 'product' column
df = df. sort_values (' product ')

#view updated DataFrame
print (df)

  product sales
7 A13 28
4 A2 14
2 A22 19
0 A3 18
1 A5 22
3 A50 14
5 A7 11
6 A9 20

इसके बजाय, हमें सॉर्ट नामक एक नया अस्थायी कॉलम बनाने की आवश्यकता है जिसमें केवल उत्पाद कॉलम से संख्याएं हों, फिर सॉर्ट कॉलम में मानों के आधार पर सॉर्ट करें, फिर कॉलम को पूरी तरह से हटा दें:

 import pandas as pd

#create new 'sort' column that contains digits from 'product' column
df[' sort '] = df[' product ']. str . extract (' (\d+) ', expand= False ). astype (int)

#sort rows based on digits in 'sort' column
df = df. sort_values (' sort ')

#drop 'sort' column
df = df. drop (' sort ', axis= 1 )

#view updated DataFrame
print (df)

  product sales
4 A2 14
0 A3 18
1 A5 22
5 A7 11
6 A9 20
7 A13 28
2 A22 19
3 A50 14

ध्यान दें कि पंक्तियाँ अब उत्पाद कॉलम में स्ट्रिंग्स द्वारा क्रमबद्ध हैं और संख्याएँ सही क्रम में क्रमबद्ध हैं।

नोट : आप पांडा सॉर्ट_वैल्यूज़() फ़ंक्शन का पूरा दस्तावेज़ यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य कार्य कैसे करें:

पांडा: तिथि के अनुसार कैसे क्रमबद्ध करें
पांडा: कॉलम को नाम के आधार पर कैसे क्रमबद्ध करें
पांडा: सूचकांक और स्तंभ दोनों के आधार पर कैसे क्रमबद्ध करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *