पांडा में ग्रुपबी() और ट्रांसफ़ॉर्म() फ़ंक्शंस का उपयोग कैसे करें
आप पांडा डेटाफ़्रेम में ग्रुपबाय() और ट्रांसफ़ॉर्म() फ़ंक्शंस का एक साथ उपयोग करने के लिए निम्न विधियों का उपयोग कर सकते हैं:
विधि 1: अंतर्निहित फ़ंक्शन के साथ ग्रुपबी() और ट्रांसफ़ॉर्म() का उपयोग करें
df[' new '] = df. groupby (' group_var ')[' value_var ']. transform (' mean ')
विधि 2: कस्टम फ़ंक्शन के साथ ग्रुपबी() और ट्रांसफ़ॉर्म() का उपयोग करें
df[' new '] = df. groupby (' group_var ')[' value_var ']. transform ( lambda x: some function)
निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित पांडा डेटाफ़्रेम के साथ व्यवहार में प्रत्येक विधि का उपयोग कैसे करें:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' points ': [30, 22, 19, 14, 14, 11, 20, 28]}) #view DataFrame print (df) team points 0 to 30 1 to 22 2 to 19 3 to 14 4 B 14 5 B 11 6 B 20 7 B 28
उदाहरण 1: बिल्ट-इन फ़ंक्शन के साथ ग्रुपबी() और ट्रांसफ़ॉर्म() का उपयोग करें
निम्नलिखित कोड दिखाता है कि डेटाफ़्रेम में एक नया कॉलम जोड़ने के लिए ग्रुपबी ( ) और ट्रांसफ़ॉर्म () फ़ंक्शंस का उपयोग कैसे करें, जिसे माध्य_पॉइंट कहा जाता है:
#create new column called mean_points
df[' mean_points '] = df. groupby (' team ')[' points ']. transform (' mean ')
#view updated DataFrame
print (df)
team points mean_points
0 to 30 21.25
1 to 22 21.25
2 A 19 21.25
3 to 14 21.25
4 B 14 18.25
5 B 11 18.25
6 B 20 18.25
7 B 28 18.25
टीम ए के खिलाड़ियों के लिए औसत अंक मान 21.25 था और टीम बी के खिलाड़ियों के लिए औसत अंक मान 18.25 था, इसलिए इन मूल्यों को एक नए कॉलम में प्रत्येक खिलाड़ी के अनुसार निर्दिष्ट किया गया था।
ध्यान दें कि हम प्रत्येक टीम के लिए प्राप्त अंकों का योग प्रदर्शित करने वाला एक नया कॉलम बनाने के लिए किसी अन्य अंतर्निहित फ़ंक्शन जैसे sum() का भी उपयोग कर सकते हैं:
#create new column called sum_points
df[' sum_points '] = df. groupby (' team ')[' points ']. transform (' sum ')
#view updated DataFrame
print (df)
team points sum_points
0 to 30 85
1 to 22 85
2 A 19 85
3 to 14 85
4 B 14 73
5 B 11 73
6 B 20 73
7 B 28 73
टीम A के खिलाड़ियों के अंकों का योग 85 था और टीम B के खिलाड़ियों के अंकों का योग 73 था, इसलिए ये मान एक नए कॉलम में प्रत्येक खिलाड़ी को तदनुसार दिए गए थे।
उदाहरण 2: कस्टम फ़ंक्शन के साथ ग्रुपबी() और ट्रांसफ़ॉर्म() का उपयोग करें
निम्नलिखित कोड दिखाता है कि एक कस्टम फ़ंक्शन बनाने के लिए ग्रुपबी ( ) और ट्रांसफ़ॉर्म () फ़ंक्शंस का उपयोग कैसे करें जो प्रत्येक खिलाड़ी द्वारा उनकी संबंधित टीमों पर बनाए गए कुल अंकों के प्रतिशत की गणना करता है:
#create new column called percent_of_points
df[' percent_of_points '] = df. groupby (' team ')[' points ']. transform ( lambda x:x/ x.sum ())
#view updated DataFrame
print (df)
team points percent_of_points
0 A 30 0.352941
1 A 22 0.258824
2 A 19 0.223529
3 A 14 0.164706
4 B 14 0.191781
5 B 11 0.150685
6 B 20 0.273973
7 B 28 0.383562
यहां परिणाम की व्याख्या करने का तरीका बताया गया है:
- टीम ए के पहले खिलाड़ी ने टीम ए के खिलाड़ियों के बीच कुल 85 में से 30 अंक बनाए। इस प्रकार, उसके कुल अंकों का प्रतिशत 30/85 = 0.352941 था।
- टीम ए के दूसरे खिलाड़ी ने टीम ए के खिलाड़ियों के बीच कुल 85 में से 22 अंक बनाए। इस प्रकार, उसके कुल अंकों का प्रतिशत 22/85 = 0.258824 था।
और इसी तरह।
ध्यान दें कि हम अपनी इच्छानुसार कोई भी कस्टम गणना करने के लिए ट्रांसफॉर्म() फ़ंक्शन में लैम्ब्डा तर्क का उपयोग कर सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य ऑपरेशन कैसे करें:
पंडों में ग्रुपबाय योग कैसे निष्पादित करें
पंडों में ग्रुपबी और प्लॉट का उपयोग कैसे करें
पांडा में GroupBy का उपयोग करके अद्वितीय मानों की गणना कैसे करें