python - Pandas: apply different functions to different columns -
df.mean () का उपयोग करते समय मुझे एक परिणाम मिलता है, जहां प्रत्येक कॉलम का मतलब दिया जाता है अब हम कहते हैं कि मैं पहले स्तंभ का मतलब चाहता हूं, और दूसरे का योग क्या इसे करने का कोई तरीका है? मुझे डेटाफ्रेम को अलग करना और पुन: इकट्ठा करना नहीं है।
pandas.groupby.agg () की तर्ज पर मेरा प्रारंभिक विचार था:
< कोड> df = pd.DataFrame (np.random.random (10,2)), स्तंभ = ['ए', 'बी']) df.apply ({'A': np.mean, 'B': Np.sum}, अक्ष = 0) ट्रैसबैक (सबसे हाल ही में कॉल अंतिम): फ़ाइल "& lt; ipython-input-81-265d3e797682" gt; लाइन 1, & lt; मॉड्यूल & gt; Df.apply ({'A': np.mean, 'B': np.sum}, axis = 0) फ़ाइल "C: \ Users \ Patrick \ Anaconda \ lib \ site-packages \ pandas \ core \ frame.py ", रेखा 3471, रिटर्न स्व: _apply_standard लागू करें (एफ, अक्ष, कम करें = कम) फ़ाइल" सी: \ उपयोगकर्ता \ पैट्रिक \ एनाकोंडा \ lib \ site-packages \ pandas \ core \ frame.py ", पंक्ति 3560, में _apply_standard परिणाम [i] = func (v) टाइप एरर: ("'डिक्ट' ऑब्जेक्ट कॉल करने योग्य नहीं है, इंडेक्स ए पर यू'काकुरे ')
लेकिन स्पष्ट रूप से यह काम नहीं करता है ऐसा प्रतीत होता है कि एक डिक्ट पास करना ऐसा करने का एक सहज ज्ञान युक्त तरीका होगा, लेकिन फिर एक और तरीका है (फिर से डिस्फाफ्रेम के बिना डिस्मैंम्बलिंग और पुनः reassembling)?
आप एक बंद करने की कोशिश कर सकते हैं:
def multi_func (फ़ंक्शन): def f (col): वापसी कार्य [col.name] (col) return f df = Pd.DataFrame (np.random.random ((10, 2)), स्तंभ = ['ए', 'बी']) परिणाम = df.apply (multi_func ({'ए': एनपी। मीन, 'बी' : Np.sum}))
Comments
Post a Comment