नमस्कार मित्रों!
डेटा एनालिसिस श्रृंखला के भाग 3 में हमने जाना कि Pandas DataFrames को कैसे फ़िल्टर किया जाता है, नए फ़ीचर्स कैसे बनाए जाते हैं और डेटा को अपनी ज़रूरत के अनुसार कैसे रीशेप किया जाता है।
अब आपके पास एक साफ़ और सुव्यवस्थित डेटासेट मौजूद है। लेकिन जब डेटासेट में हज़ारों या लाखों पंक्तियाँ होती हैं, तो हर एक पंक्ति को अलग-अलग देखकर कोई बड़ा व्यावसायिक या रणनीतिक निर्णय नहीं लिया जा सकता।
प्रबंधकों, शोधकर्ताओं और नीति-निर्माताओं को अक्सर High-level Summary चाहिए होते हैं, जैसे:
- किस शहर में छात्रों का औसत प्रदर्शन सबसे बेहतर रहा?
- किस विभाग का कुल मासिक खर्च सबसे अधिक है?
- पिछले साल हर Quarter में कुल कितनी बिक्री दर्ज की गई?
यही वह जगह है जहाँ GroupBy और डेटा एग्रीगेशन की भूमिका शुरू होती है। Excel में जो काम करने के लिए आपको Pivot Tables का सहारा लेना पड़ता है, वही काम Pandas में बेहद सरलता और तेज़ी से पूरा हो जाता है। आज AI Bodh पर हम सीखेंगे कि GroupBy ऑपरेशन्स कैसे काम करते हैं और विशाल डेटासेट से तुलनात्मक निष्कर्ष कैसे निकाले जाते हैं।
1. GroupBy का मूल सिद्धांत: Split-Apply-Combine
Pandas का groupby() फ़ंक्शन एक तीन-चरणीय प्रक्रिया पर काम करता है, जिसे Split-Apply-Combine आर्किटेक्चर कहा जाता है:

Split (विभाजन): डेटा को किसी खास श्रेणी (Category) के आधार पर अलग-अलग समूहों में बाँटना।
Apply (लागू करना): प्रत्येक समूह पर कोई गणितीय या सांख्यिकीय फ़ंक्शन (जैसे Mean, Sum, Count) लागू करना।
Combine (संयोजन): सभी समूहों के परिणामों को जोड़कर एक नई, संक्षिप्त सारांश टेबल बनाना।
2. सामान्य GroupBy और एग्रीगेशन फ़ंक्शंस
मान लीजिए आपके पास विभिन्न शहरों के विद्यार्थियों के अंकों का डेटासेट है:
Python
import pandas as pd
# डेटासेट लोड करना
df = pd.read_csv('students_scores.csv')
# 1. प्रत्येक शहर के छात्रों के औसत अंक निकालना
city_avg = df.groupby('City')['Marks'].mean()
# 2. प्रत्येक शहर में कुल छात्रों की संख्या गिनना
city_count = df.groupby('City')['StudentID'].count()
# 3. प्रत्येक शहर में उच्चतम अंक (Max Score) खोजना
city_max = df.groupby('City')['Marks'].max()
3. एक साथ कई एग्रीगेशन लागू करना (agg() मेथड)
वास्तविक विश्लेषण में केवल औसत निकालना पर्याप्त नहीं होता। अक्सर हमें एक साथ कई सांख्यिकीय पैमानों की आवश्यकता होती है। इसके लिए .agg() फ़ंक्शन का उपयोग किया जाता है:
Python
# शहर के अनुसार औसत, न्यूनतम, अधिकतम और कुल संख्या एक साथ निकालना
city_summary = df.groupby('City')['Marks'].agg(['mean', 'min', 'max', 'count'])
print(city_summary)
आउटपुट का स्वरूप:
|
City |
mean |
min |
max |
count |
|
Jaipur |
88.5 |
65 |
98 |
120 |
|
Jodhpur |
79.2 |
52 |
91 |
95 |
|
Udaipur |
84 |
58 |
96 |
110 |
4. मल्टीपल ग्रुपिंग (Multiple GroupBy Columns)
जब आपको एक से अधिक श्रेणियों के आधार पर डेटा को गहराई से समझना हो, जैसे "प्रत्येक शहर के भीतर प्रत्येक विषय (Subject) का औसत प्रदर्शन":
Python
# शहर और विषय दोनों के आधार पर ग्रुपिंग
deep_analysis = df.groupby(['City', 'Subject'])['Marks'].mean()
5. Pivot Tables: जटिल डेटा का सरल मैट्रिक्स
Excel की तरह Pandas में भी pivot_table() फ़ंक्शन उपलब्ध है, जो डेटा को पंक्तियों और स्तंभों के क्रॉस-टैबुलर रूप में प्रस्तुत करता है:
Python
# पंक्तियों में 'City' और स्तंभों में 'Subject' के साथ औसत अंकों का पिवट टेबल
pivot_view = df.pivot_table(
values='Marks',
index='City',
columns='Subject',
aggfunc='mean'
)
GroupBy और एग्रीगेशन का त्वरित संदर्भ गाइड
|
विश्लेषण का उद्देश्य |
Pandas सिंटैक्स |
व्यावहारिक परिणाम |
|
श्रेणीबद्ध औसत |
df.groupby('Category')['Value'].mean() |
प्रत्येक वर्ग का औसत मान |
|
बहु-स्तरीय गणना |
df.groupby('Category')['Value'].agg(['sum',
'mean']) |
एक ही वर्ग का कुल योग व औसत |
|
रिकॉर्ड्स की गिनती |
df.groupby('Category').size() |
हर समूह में कुल कितनी प्रविष्टियाँ हैं |
|
क्रॉस-टेबुलेशन |
df.pivot_table(values='Val',
index='A', columns='B') |
2D तुलनात्मक मैट्रिक्स रिपोर्ट |
श्रृंखला के अंतिम भाग (भाग 5) में हम इस पूरी यात्रा को एक वास्तविक प्रोजेक्ट में बदलेंगे: "एक्सप्लोरेटरी डेटा एनालिसिस (EDA) — वास्तविक डेटासेट से व्यावहारिक और सार्थक अंतर्दृष्टि निकालना।" वहाँ हम जानेंगे कि डेटा क्लीनिंग, ट्रांसफ़ॉर्मेशन और ग्रुपिंग को एक साथ जोड़कर व्यावसायिक समस्याओं का समाधान कैसे किया जाता है।
Bottom Line
डेटा एनालिसिस का असली जादू व्यक्तिगत संख्याओं को देखने में नहीं, बल्कि समूहों के बीच छिपे पैटर्न्स और तुलनाओं को समझने में है। GroupBy और एग्रीगेशन वे शक्तिशाली साधन हैं जो लाखों पंक्तियों के बिखरे हुए डेटा को कुछ ही सेकंडों में स्पष्ट और रणनीतिक निर्णयों में बदल देते हैं।
सीखते रहिए, कोड को चलाकर प्रयोग करते रहिए और इस श्रृंखला के अंतिम पड़ाव के लिए जुड़े रहिए!
–०–
– डॉ. चंद्रेश कुमार छतलानी
No comments:
Post a Comment