2025, Oct 31 19:01
pandas में पूरी मैट्रिक्स को एक ही बॉक्स प्लॉट में समेटें
जानें कैसे pandas DataFrame में 2D मैट्रिक्स के सभी मानों को एक ही बॉक्स प्लॉट में दिखाएं: stack()/to_frame() से डेटा समेकित करें, कॉलम-आधारित कई बॉक्स से बचें. सरल तरीका.
pandas में पूरी मैट्रिक्स के लिए एक ही बॉक्स प्लॉट: हर चीज़ को एक ही वितरण में कैसे समेटें
अक्सर ऐसा होता है कि आप 2D ऐरे को pandas DataFrame में पास करते हैं और boxplot कॉल करते हैं—उम्मीद रहती है कि पूरे डेटासेट का एक संक्षेप मिलेगा, मगर नतीजा कई बॉक्स के रूप में आता है। अगर आपका मकसद एक ऐसा बॉक्स प्लॉट है जो मैट्रिक्स के सभी मानों को साथ लेकर चले, तो इसका सीधा तरीका है।
समस्या सेटअप
नीचे दिया स्निपेट 4×4 की मैट्रिक्स बनाता है, उसे DataFrame में बदलता है और बॉक्स प्लॉट बनाता है। आउटपुट में चार अलग-अलग बॉक्स दिखाई देते हैं।
import numpy as npa
import pandas as pds
vals = npa.random.random(size=(4, 4))
frame = pds.DataFrame(vals)
frame.boxplot()कई बॉक्स क्यों दिखते हैं
आप (4, 4) आकार का 2D डेटा बना रहे हैं। डिफ़ॉल्ट रूप से, DataFrame का boxplot प्रति कॉलम एक बॉक्स बनाता है, इसलिए 4 कॉलम वाली टेबल में चार बॉक्स बनते हैं। अगर उद्देश्य सभी 16 मानों (4 × 4) का एक ही सार दिखाना है, तो डेटा को चार अलग कॉलम के बजाय एक समेकित सेट की तरह लेना होगा।
समाधान
पूरी मैट्रिक्स के लिए एक ही बॉक्स प्लॉट बनाने के लिए पहले DataFrame को ऐसा रीशेप करें कि सभी मान एक ही कॉलम में आ जाएँ। इसके बाद boxplot कॉल करने पर सभी 16 सैंपल का प्रतिनिधित्व करता हुआ एक बॉक्स बनेगा।
import numpy as npa
import pandas as pds
vals = npa.random.random(size=(4, 4))
frame = pds.DataFrame(vals)
frame.stack().to_frame().boxplot()यह 2D संरचना को एक कॉलम में स्टैक करता है और फिर उसे प्लॉट करता है, जिससे पूरे डेटासेट के लिए एक ही बॉक्स बनता है।
यह क्यों महत्वपूर्ण है
कभी आप कॉलमों की तुलना करना चाहते हैं, तो कभी सब कुछ मिलाकर एक सारांश चाहिए होता है। जब किसी मैट्रिक्स के लिए एक ही वितरण चाहिए, तो सभी एंट्री को एक ही पूल मानना कॉलम-आधारित विभाजन की गलत व्याख्याओं से बचाता है और समग्र व्यवहार पर ध्यान केंद्रित करता है।
मुख्य निष्कर्ष
अगर DataFrame का boxplot कई बॉक्स दिखा रहा हो और आपको सिर्फ एक चाहिए, तो प्लॉट करने से पहले डेटा को एक-आयामी बना लें। मैट्रिक्स के लिए, मानों को एक कॉलम में स्टैक करना उन्हें समेकित करने का कारगर तरीका है, जिसके बाद boxplot पूरे डेटासेट का सार दिखाने वाला एक ही बॉक्स बनाता है।