मेरे पास डेटा फ्रेम है और मैं इसे किसी विशेष कॉलम द्वारा समूहित करना चाहता हूं (या, दूसरे शब्दों में, किसी विशेष कॉलम से मानों के अनुसार)। मैं इसे निम्न तरीके से कर सकता हूं: grouped = df.groupby(['ColumnName'])
।पांडा में समूह का उपयोग करते समय कॉलम में "पहला" और "आखिरी" फ़ंक्शंस कैसे लागू करें?
मैं इस ऑपरेशन के परिणाम को एक तालिका के रूप में कल्पना करता हूं जिसमें कुछ कक्षों में एकल मानों के बजाय मूल्यों के सेट हो सकते हैं। एक सामान्य तालिका प्राप्त करने के लिए (यानी एक सारणी जिसमें प्रत्येक कक्ष में केवल एक ही मान होता है) मुझे यह इंगित करने की आवश्यकता है कि मैं कौन से फ़ंक्शन का उपयोग करना चाहता हूं ताकि कोशिकाओं में मानों के सेट को एकल मानों में परिवर्तित किया जा सके।
उदाहरण के लिए मैं मूल्यों के सेट को उनके योग, या उनके न्यूनतम या अधिकतम मूल्य से प्रतिस्थापित कर सकता हूं। मैं इसे निम्न तरीके से कर सकता हूं: grouped.sum()
या grouped.min()
और इसी तरह।
अब मैं विभिन्न कॉलम के लिए विभिन्न कार्यों का उपयोग करना चाहता हूं। मुझे पता चला कि मैं इसे निम्न तरीके से कर सकता हूं: grouped.agg({'ColumnName1':sum, 'ColumnName2':min})
।
हालांकि, कुछ कारणों से मैं first
का उपयोग नहीं कर सकता। अधिक जानकारी में, grouped.first()
काम करता है, लेकिन grouped.agg({'ColumnName1':first, 'ColumnName2':first})
काम नहीं करता है। नतीजतन मुझे एक नाम त्रुटि मिलती है: NameError: name 'first' is not defined
। तो, मेरा सवाल है: ऐसा क्यों होता है और इस समस्या को कैसे हल किया जाए।
जोड़ा
Here मैं निम्न उदाहरण पाया:
grouped['D'].agg({'result1' : np.sum, 'result2' : np.mean})
हो सकता है मैं भी np
उपयोग करने की आवश्यकता? लेकिन मेरे मामले में अजगर "एनपी" पहचान नहीं है। क्या मुझे इसे आयात करना चाहिए?
आपको 'np' की आवश्यकता नहीं है, यह सादे पुराने' sum' (केवल कम कुशलतापूर्वक) के साथ काम करेगा। numpy pandas के साथ आयात किया जाता है (यदि आप 'pdas के रूप में pandas आयात करते हैं तो यह' pd.np' है) लेकिन अधिकांश लोग सुविधा के लिए इसे अलग से आयात भी करेंगे। –