पांडा: "संपत्ति के आधार पर समूहीकरण" के लिए एक सरल सूत्र


आप पांडा में “ग्रुप बाय हैविंग” SQL स्टेटमेंट के समतुल्य को निष्पादित करने के लिए निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं:

 df. groupby (' some_column '). filter ( lambda x: some condition)

निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित पांडा डेटाफ़्रेम के साथ व्यवहार में इस सिंटैक्स का उपयोग कैसे करें:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   ' position ': ['G', 'F', 'F', 'G', 'F', 'F', 'G', 'G'],
                   ' points ': [30, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  team position points
0 AG 30
1 AF 22
2 FY 19
3 BG 14
4 BF 14
5 BF 11
6 GC 20
7 GC 28

उदाहरण 1: गिनती के साथ पांडा का समूह

निम्नलिखित कोड दिखाता है कि टीम कॉलम में मान के आधार पर पंक्तियों को कैसे समूहित किया जाए और फिर केवल उन टीमों को फ़िल्टर किया जाए जिनकी संख्या 2 से अधिक है:

 #group by team and filter for teams with count > 2
df. groupby (' team '). filter ( lambda x: len (x) > 2 )


        team position points
0 A G 30
1 A F 22
2 A F 19
3 B G 14
4 B F 14
5 B F 11

ध्यान दें कि केवल “ए” या “बी” टीम मान वाली पंक्तियाँ ही लौटाई जाती हैं क्योंकि ये दोनों टीमें हैं जिनकी संख्या 2 से अधिक है।

उदाहरण 2: औसत के साथ पांडा का समूह

निम्नलिखित कोड दिखाता है कि टीम कॉलम में मान के आधार पर पंक्तियों को कैसे समूहित किया जाए और फिर केवल उन टीमों को फ़िल्टर किया जाए जिनका औसत बिंदु मान 20 से अधिक है:

 #group by team and filter for teams with mean points > 20
df. groupby (' team '). filter ( lambda x: x[' points ']. mean () > 20 )

        team position points
0 A G 30
1 A F 22
2 A F 19
6 C G 20
7 C G 28

ध्यान दें कि केवल “ए” या “सी” टीम मान वाली पंक्तियाँ ही लौटाई जाती हैं क्योंकि ये दो टीमें हैं जिनका औसत अंक मान 20 से अधिक है।

उदाहरण 3: योग के साथ पांडाओं का समूह

निम्नलिखित कोड दिखाता है कि टीम कॉलम में पंक्तियों को मूल्य के आधार पर कैसे समूहित किया जाए और फिर केवल उन टीमों को फ़िल्टर किया जाए जिनके अंकों का योग ठीक 48 है:

 #group by team and filter for teams with sum of points equal to 48
df. groupby (' team '). filter ( lambda x: x[' points ']. sum () == 48 )

        team position points
6 C G 20
7 C G 28

ध्यान दें कि केवल “C” टीम मान वाली पंक्तियाँ ही लौटाई जाती हैं क्योंकि यह एकमात्र टीम है जिसका अंक योग 48 के बराबर है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य ऑपरेशन कैसे करें:

पांडा: उन पंक्तियों का सूचकांक प्राप्त करें जिनका कॉलम मान से मेल खाता है
पांडा: एक विशिष्ट स्ट्रिंग वाले कॉलम का चयन कैसे करें
पांडा: कैसे जांचें कि कॉलम में कोई स्ट्रिंग है या नहीं

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *