एक क्लास असाइनमेंट पर काम करना।
हमारे वर्तमान डेटासेट में ऐसी जानकारी है जो इस तरह दिखती है:
Item ID Item Name Price
0 108 Extraction, Quickblade Of Trembling Hands 3.53
1 143 Frenzied Scimitar 1.56
2 92 Final Critic 4.88
3 100 Blindscythe 3.27
4 131 Fury 1.44
हमें दो मानों के आधार पर समूहबद्ध करने के लिए कहा गया था, जो मैंने किया है।
item_df = popcolumns_df.groupby(["Item ID","Item Name"])
हालांकि, मुझे इस डेटाफ्रेम में ग्रुपबी कार्यों को जोड़ने की कोशिश करने में समस्याएं आ रही हैं। उदाहरण के लिए, जब मैं गिनती चलाता हूं, तो गिनती कीमत को बदल देती है। एक प्रयास ने मूल्य कॉलम के सभी डेटा को काउंट के साथ बदल दिया।
item_counts = item_df.count().reset_index()
आउटपुट:
Item ID Item Name Price
0 0 Splinter 4
1 1 Crucifer 3
2 2 Verdict 6
3 3 Phantomlight 6
4 4 Bloodlord's Fetish 5
प्रयास 2 ने वही किया:
item_counts = item_df.size().reset_index(name="Counts")
मेरा वांछित आउटपुट है:
Item ID Item Name Price Count Revenue
0 108 Extraction, Quickblade 3.53 12 42.36
1 143 Frenzied Scimitar 1.56 3 4.68
2 92 Final Critic 4.88 2 9.76
3 100 Blindscythe 3.27 1 3.27
4 131 Fury 1.44 5 7.20
मैं राजस्व प्राप्त करने के लिए समूहों पर सिर्फ एक राशि का उपयोग करूंगा। मैं इस पर कुछ घंटों के लिए फंस गया हूं, इसलिए किसी भी मदद की बहुत सराहना की जाएगी!
2 जवाब
यदि किन्हीं दो समान वस्तुओं की कीमतें समान हैं, तो आप "Price"
को अपने समूह में शामिल कर सकते हैं, और फिर समूह आकार:
summary = popcolumns_df \
.groupby(["Item ID", "Item Name", "Price"]) \
.size() \
.rename("Count") \
.reset_index()
summary['Revenue'] = summary['Count'] * summary['Price']
pd.Series.rename
को कॉल करने से अंतिम डेटाफ़्रेम में कॉलम का नाम "Count"
हो जाता है।
मुझे लगता है कि आप ग्रुपबी की transform
विधि ढूंढ रहे हैं। यह आपके डेटा के मूल स्तर पर समग्र मीट्रिक देता है।
उदाहरण के लिए, कुछ समूहों की संख्या के लिए अपने मूल डेटा में एक नया कॉलम बनाने के लिए:
df['group_level_count'] = df.groupby(['foo', 'bar']).transform('count') # or 'size' I think, depending whether you want to count NaNs
संबंधित: * कैसे पांडा समूह में प्रति समूह (और अन्य आंकड़े) पंक्तियों की संख्या गिनने के लिए? * https://pandas.pydata.org/pandas-docs/stable /groupby.html#transformation
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।