पांडा: nlargest() के साथ groupby का उपयोग कैसे करें
आप पांडा डेटाफ़्रेम में समूह द्वारा n सबसे बड़े मान प्रदर्शित करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
#display two largest values by group df. groupby (' group_var ')[' values_var ']. nlargest ( 2 )
और आप पांडा डेटाफ़्रेम में प्रति समूह n सबसे बड़े मानों पर कुछ संचालन (जैसे योग लेना) करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
#find sum of two largest values by group df. groupby (' group_var ')[' values_var ']. apply ( lambda grp: grp.nlargest ( 2 ) .sum ())
निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित पांडा डेटाफ़्रेम के साथ व्यवहार में प्रत्येक विधि का उपयोग कैसे करें:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
' points ': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})
#view DataFrame
print (df)
team points
0 to 12
1 to 29
2 to 34
3 to 14
4 to 10
5 B 11
6 B 7
7 B 36
8 B 34
9 B 22
उदाहरण 1: समूह द्वारा एन सबसे बड़े मान प्रदर्शित करें
टीम द्वारा समूहीकृत दो सबसे बड़े बिंदु मानों को प्रदर्शित करने के लिए निम्नलिखित सिंटैक्स का उपयोग किया जा सकता है:
#display two largest points values grouped by team
df. groupby (' team ')[' points ']. nlargest ( 2 )
team
At 2 34
1 29
B 7 36
8 34
Name: points, dtype: int64
परिणाम मूल डेटाफ़्रेम में उनकी अनुक्रमणिका स्थिति के साथ, प्रत्येक टीम के लिए दो सबसे बड़े बिंदु मान प्रदर्शित करता है।
उदाहरण 2: प्रति समूह एन सबसे बड़े मानों पर एक ऑपरेशन करें
हम टीम द्वारा समूहीकृत दो सबसे बड़े बिंदु मानों के योग की गणना करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
#calculate sum of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .sum ())
team
At 63
B70
Name: points, dtype: int64
यहां परिणाम की व्याख्या करने का तरीका बताया गया है:
- टीम ए के लिए दो सबसे बड़े बिंदु मानों का योग 63 है।
- टीम बी के लिए दो सबसे बड़े बिंदु मानों का योग 70 है।
हम टीम द्वारा समूहीकृत दो सबसे बड़े बिंदु मानों के औसत की गणना करने के लिए समान वाक्यविन्यास का उपयोग कर सकते हैं:
#calculate mean of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .mean ())
team
At 31.5
B 35.0
Name: points, dtype: float64
यहां परिणाम की व्याख्या करने का तरीका बताया गया है:
- टीम ए के लिए दो उच्चतम बिंदु मानों का औसत 31.5 है।
- टीम बी के लिए दो उच्चतम बिंदु मानों का औसत 35.0 है।
नोट : आप GroupBy फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य ऑपरेशन कैसे करें:
पांडा: प्रति समूह संचयी योग की गणना कैसे करें
पांडा: समूह द्वारा अद्वितीय मूल्यों की गणना कैसे करें
पांडा: समूह द्वारा मोड की गणना कैसे करें
पांडा: समूह द्वारा सहसंबंध की गणना कैसे करें