क्या विभिन्न स्तंभों के संयोजन से डेटाफ़्रेम को सॉर्ट करने का कोई तरीका है? जैसे कि यदि विशिष्ट कॉलम पंक्तियों के बीच मेल खाते हैं, तो उन्हें एक साथ क्लस्टर किया जाएगा? नीचे एक उदाहरण: किसी भी मदद की बहुत सराहना की जाती है!
2 जवाब
पांडा डेटाफ़्रेम को सॉर्ट करने का एक तरीका .sort_values() का उपयोग करना है।
नीचे दिया गया कोड आपके नमूना डेटाफ़्रेम को दोहराता है:
df= pd.DataFrame({'v1': [1, 3, 2, 1, 4, 3],
'v2': [2, 2, 4, 2, 3, 2],
'v3': [3, 3, 2, 3, 2, 3],
'v4': [4, 5, 1, 4, 2, 5]})
नीचे दिए गए कोड का उपयोग करके, डेटाफ्रेम को कॉलम v1 और v2 दोनों द्वारा सॉर्ट किया जा सकता है। इस मामले में, v2 का उपयोग केवल संबंध तोड़ने के लिए किया जाता है।
df.sort_values(by=['v1', 'v2'], ascending=True)
यहां "द्वारा" पैरामीटर किसी भी संख्या में चर तक सीमित नहीं है, इसलिए वांछित क्रम में अधिक चर शामिल करने के लिए सूची का विस्तार कर सकता है।
छवि में दिखाए गए अपने सॉर्ट पैटर्न से मेल खाने के लिए यह सबसे अच्छा है।
import pandas as pd
df = pd.DataFrame(dict(
v1=[1,3,2,1,4,3],
v2=[2,2,4,2,3,2],
v3=[3,3,2,3,2,3],
v4=[4,5,1,4,2,5],
))
# Make a temp column to sort the df by
df['sort'] = df.astype(str).values.sum(axis=1)
# Sort the df by that column, drop it and reset the index
df = df.sort_values(by='sort').drop(columns='sort').reset_index(drop=1)
print(df)
लिंक जिसे आप रेफर कर सकते हैं - पायथन ट्यूटर में कोड
संपादित करें: Zolzaya Luvsandorj की सिफारिश बेहतर है:
import pandas as pd
df = pd.DataFrame(dict(
v1=[1,3,2,1,4,3],
v2=[2,2,4,2,3,2],
v3=[3,3,2,3,2,3],
v4=[4,5,1,4,2,5],
))
df = df.sort_values(by=list(df.columns)).reset_index(drop=1)
print(df)
लिंक जिसे आप रेफर कर सकते हैं - पायथन ट्यूटर में बेहतर कोड
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।