पांडाज़ पाइथन में एक शक्तिशाली डेटा मैनिपुलेशन लाइब्रेरी है। एक बारंबार कार्य आपके डेटासेट के विभिन्न समूहों के भीतर अद्वितीय मानों की संख्या निर्धारित करना शामिल है। यह लेख इसे पूरा करने के लिए तीन कुशल पांडा विधियों का पता लगाएगा: groupby().nunique()
, groupby().agg()
, और groupby().unique()
। प्रत्येक विधि को स्पष्ट उदाहरणों के साथ प्रदर्शित किया जाएगा।
विषयवस्तु की तालिका
groupby().nunique()
विधि
groupby()
ऑपरेशन के बाद उपयोग की जाने वाली nunique()
विधि, प्रत्येक समूह के लिए अद्वितीय मानों की गणना सीधे प्रदान करती है। यह अक्सर सबसे कुशल और संक्षिप्त तरीका होता है।
इस नमूना DataFrame पर विचार करें:
import pandas as pd
data = {'Group': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'],
'Value': ['X', 'Y', 'X', 'Z', 'Z', 'X', 'Y', 'Z', 'X']}
df = pd.DataFrame(data)
print(df)
यह उत्पन्न करता है:
Group Value
0 A X
1 A Y
2 A X
3 B Z
4 B Z
5 C X
6 C Y
7 C Z
8 C X
‘Group’ के अनुसार अद्वितीय ‘Value’ प्रविष्टियों की गणना करने के लिए, उपयोग करें:
unique_counts = df.groupby('Group')['Value'].nunique()
print(unique_counts)
आउटपुट:
Group
A 2
B 1
C 3
Name: Value, dtype: int64
यह दर्शाता है कि समूह ‘A’ में 2 अद्वितीय मान हैं, ‘B’ में 1 है, और ‘C’ में 3 हैं।
groupby().agg()
विधि
agg()
विधि अधिक लचीलापन प्रदान करती है, जिससे एक साथ कई एकत्रीकरण कार्यों का अनुप्रयोग सक्षम होता है। हम अद्वितीय मानों की गणना करने के लिए इसे nunique()
के साथ उपयोग कर सकते हैं, यदि आवश्यक हो तो अन्य कार्यों के साथ।
समान DataFrame का उपयोग करते हुए:
aggregated_data = df.groupby('Group')['Value'].agg(['nunique', 'count'])
print(aggregated_data)
आउटपुट:
nunique count
Group
A 2 3
B 1 2
C 3 4
यह प्रत्येक समूह के लिए अद्वितीय मानों की संख्या (nunique
) और मानों की कुल गणना (count
) दोनों को दिखाता है। यह अधिक व्यापक विश्लेषण के लिए फायदेमंद है।
groupby().unique()
विधि
unique()
विधि प्रत्येक समूह के लिए स्वयं अद्वितीय मान लौटाती है, उनकी गणना नहीं। हालांकि यह सीधे गणना प्रदान नहीं करता है, यह उपयोगी है यदि आपको वास्तविक अद्वितीय मान देखने की आवश्यकता है।
unique_values = df.groupby('Group')['Value'].unique()
print(unique_values)
आउटपुट:
Group
A [X, Y]
B [Z]
C [X, Y, Z]
Name: Value, dtype: object
गणना प्राप्त करने के लिए, एक अतिरिक्त चरण की आवश्यकता है:
unique_value_counts = unique_values.apply(len)
print(unique_value_counts)
यह nunique()
के समान परिणाम देता है:
Group
A 2
B 1
C 3
Name: Value, dtype: int64
हालांकि, यह सीधे nunique()
का उपयोग करने से कम कुशल है।
निष्कर्ष: केवल प्रति समूह अद्वितीय मानों की गणना करने के लिए, groupby().nunique()
सबसे प्रत्यक्ष और कुशल विधि है। groupby().agg()
अन्य एकत्रीकरणों के साथ nunique()
को संयोजित करने के लिए अधिक लचीलापन प्रदान करता है, जबकि groupby().unique()
तब उपयोगी होता है जब आपको अद्वितीय मान देखने की आवश्यकता होती है। अपनी विश्लेषणात्मक आवश्यकताओं के लिए सबसे उपयुक्त विधि चुनें।