पांडा: मूल्यों की सीमा के आधार पर समूह कैसे बनाएं
आप एकत्रीकरण करने से पहले मानों की श्रेणी के आधार पर एक कॉलम को समूहित करने के लिए पांडा में ग्रुपबाय () फ़ंक्शन का उपयोग करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
df. groupby (pd. cut (df[' my_column '], [0, 25, 50, 75, 100])). sum ()
यह विशेष उदाहरण डेटाफ़्रेम की पंक्तियों को my_column नामक कॉलम में मानों की निम्नलिखित श्रेणी के अनुसार समूहित करेगा:
- (0.25]
- (25, 50]
- (50, 75]
- (75, 100]
इसके बाद यह मानों की इन श्रेणियों को समूहों के रूप में उपयोग करके डेटाफ़्रेम के सभी स्तंभों में मानों के योग की गणना करेगा।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।
उदाहरण: पांडा में मूल्यों की सीमा के आधार पर समूह कैसे बनाएं
आइए मान लें कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम है जिसमें विभिन्न खुदरा स्टोरों के आकार और उनकी कुल बिक्री के बारे में जानकारी शामिल है:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' store_size ': [14, 25, 26, 29, 45, 58, 67, 81, 90, 98],
' sales ': [15, 18, 24, 25, 20, 35, 34, 49, 44, 49]})
#view DataFrame
print (df)
store_size sales
0 14 15
1 25 18
2 26 24
3 29 25
4 45 20
5 58 35
6 67 34
7 81 49
8 90 44
9 98 49
हम स्टोर_साइज़ कॉलम की विशिष्ट श्रेणियों के आधार पर डेटाफ़्रेम को समूहित करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं, और फिर समूहों के रूप में श्रेणियों का उपयोग करके डेटाफ़्रेम में अन्य सभी कॉलमों के योग की गणना कर सकते हैं:
#group by ranges of store_size and calculate sum of all columns
df. groupby (pd. cut (df[' store_size '], [0, 25, 50, 75, 100])). sum ()
store_size sales
store_size
(0.25] 39 33
(25, 50] 100 69
(50, 75] 125 69
(75, 100] 269 142
परिणाम से हम देख सकते हैं:
- 0 और 25 के बीच स्टोर_साइज मान वाली पंक्तियों के लिए, स्टोर_साइज का योग 39 है और बिक्री का योग 33 है।
- 25 और 50 के बीच स्टोर_साइज मान वाली पंक्तियों के लिए, स्टोर_साइज का योग 100 है और बिक्री का योग 69 है।
और इसी तरह।
यदि आप चाहें, तो आप प्रत्येक स्टोर आकार श्रेणी के लिए बिक्री के योग की गणना भी कर सकते हैं:
#group by ranges of store_size and calculate sum of sales
df. groupby (pd. cut (df[' store_size '], [0, 25, 50, 75, 100]))[' sales ']. sum ()
store_size
(0.25] 33
(25, 50] 69
(50, 75] 69
(75, 100] 142
Name: sales, dtype: int64
आप प्रत्येक कट पॉइंट को मैन्युअल रूप से निर्दिष्ट किए बिना किसी वेरिएबल को श्रेणियों में तोड़ने के लिए NumPy arange() फ़ंक्शन का भी उपयोग कर सकते हैं:
import numpy as np #group by ranges of store_size and calculate sum of sales df. groupby (pd. cut (df[' store_size '], np. arange (0, 101, 25)))[' sales ']. sum () store_size (0.25] 33 (25, 50] 69 (50, 75] 69 (75, 100] 142 Name: sales, dtype: int64
ध्यान दें कि ये परिणाम पिछले उदाहरण से मेल खाते हैं।
नोट : आप NumPy arange() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य कार्य कैसे करें:
पांडा: ग्रुपबी का उपयोग करके अद्वितीय मानों की गणना कैसे करें
पांडा: ग्रुपबी में किसी कॉलम के माध्य और मानक की गणना कैसे करें
पांडा: ग्रुपबाय में as_index का उपयोग कैसे करें