मेरे पास स्तंभ हेडर "DIV3, DIV4, DIV5 ... DIV30" के साथ एक डाटाफ्रेम है
मेरा समस्या ये है कि पांंड निम्नलिखित स्तंभों को क्रमबद्ध कर देगा:
DIV10, DIV11, DIV12 ..., DIV3, DIV4, DIV5
क्या है एक तरह से यह व्यवस्था करने के लिए कि एकल अंक संख्या पहले आती है? Ie:
<प्री> DIV3, DIV4, DIV5 ... DIV30
आप इसे इस प्रकार से हल कर सकते हैं:
आयात पींडस को पीडी डीएफ़ प्राकृतिक_कीज (पाठ) के रूप में आयात करें: '' '' alist.sort (key = natural_keys) प्रकार मानव क्रम में http: / /nedbatchelder.com/blog/200712/human_sorting.html (टिप्पणियों में दहेज के कार्यान्वयन देखें) '' डीएफ़ एटियोई (पाठ): रिटर्न इंट (टेक्स्ट) अगर पाठ .isdigit () और टेक्स्ट रिटर्न [atoi (c) c के लिए Re.split में ('(\ d +)', पाठ)] स्तंभ = ['DIV10', 'DIV11', 'DIV12', 'DIV3', 'DIV4', 'DIV5'] df = pd.DataFrame ([[ 1] * लेन (कॉलम)], कॉलम = कॉलम प्रिंट (डीएफ) # DIV10 DIV11 DIV12 DIV3 DIV4 DIV5 # 0 1 1 1 1 1 1 डीएफ = डीएफ.रेइंडएक्स (कॉलम = सॉर्ट किया गया (डीएफ.column, key = natural_keys) ) प्रिंट (डीएफ)
पैदावार
DIV3 DIV5 DIV10 DIV11 DIV12 0 1 1 1 1 1 1
Comments
Post a Comment