Pandas में बॉक्सप्लॉट को माध्यिका (मेडियन) मानों के आधार पर सॉर्ट करने के लिए डेटा को ग्रुप करके माध्यिका गणना करें और फिर कॉलम ऑर्डर बदलें।
चरण
- फिगर आकार सेट करें और पैडिंग समायोजित करें
- तीन कॉलम वाला Pandas DataFrame बनाएं
- DataFrame को
marksऔरdobद्वारा ग्रुप करें - DataFrame की
median()गणना करें - माध्यिका के सॉर्टेड मान प्राप्त करें
- सॉर्टेड कॉलम ऑर्डर से बॉक्स प्लॉट बनाएं
plt.show()से प्रदर्शित करें
उदाहरण
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# नमूना डेटा
df = pd.DataFrame([
[23, 'James', 12],
[39, 'Jimmy', 27],
[56, 'Jack', 69],
[60, 'Tom', 96],
[80, 'Tim', 79]
], columns=['marks', 'names', 'dob'])
# marks और dob द्वारा ग्रुप करें
g = df.groupby(["marks", "dob"])
# प्रत्येक ग्रुप के लिए dob कॉलम निकालें
df = pd.DataFrame({col: val['dob'] for col, val in g})
# प्रत्येक कॉलम की माध्यिका गणना करें
median = df.median()
# माध्यिका के अवरोही क्रम में सॉर्ट करें
median.sort_values(ascending=False, inplace=True)
# DataFrame कॉलम को सॉर्टेड माध्यिका ऑर्डर में पुनर्व्यवस्थित करें
df = df[median.index]
# बॉक्सप्लॉट बनाएं
df.boxplot()
plt.show()
आउटपुट
बॉक्सप्लॉट जहां बॉक्स माध्यिका के अवरोही क्रम में व्यवस्थित हैं (सबसे अधिक माध्यिका बाएं, सबसे कम दाएं)।
व्याख्या
groupbyअद्वितीय (marks, dob) जोड़े बनाता है- डिक्शनरी कॉम्प्रिहेंशन प्रत्येक ग्रुप के लिए 'dob' मान निकालता है
median()प्रत्येक कॉलम की माध्यिका देता हैsort_values(ascending=False)माध्यिका को बड़े से छोटे क्रम में सॉर्ट करता हैdf[median.index]कॉलम को सॉर्टेड ऑर्डर में पुनर्व्यवस्थित करता हैboxplot()नए कॉलम ऑर्डर में प्लॉट करता है
सरल विकल्प (Seaborn)
import seaborn as sns
# Seaborn में order पैरामीटर से सीधे सॉर्ट करें
sns.boxplot(data=df, order=median.index)
उपयोग के मामले
तुलनात्मक विश्लेषण में जब आप समूहों को उनके केंद्रीय प्रवृत्ति (माध्यिका) के आधार पर व्यवस्थित करना चाहते हैं, तो यह तकनीक बहुत उपयोगी है।