मुझे पाइंडन दशमलव प्रकार मानों को पांडा TimeSeries
/DataFrame
ऑब्जेक्ट में स्टोर करने की आवश्यकता है। टाइमसरीज/डेटाफ्रेम पर "ग्रुपबी" और "माध्य" का उपयोग करते समय पांडस मुझे एक त्रुटि देता है। तैरता के आधार पर निम्न कोड में अच्छी तरह से काम करता है:पैंडस टाइमसरीज पर दशमलव विधि के साथ औसत विधि का उपयोग कैसे करें?
[0]: by = lambda x: lambda y: getattr(y, x)
[1]: rng = date_range('1/1/2000', periods=40, freq='4h')
[2]: rnd = np.random.randn(len(rng))
[3]: ts = TimeSeries(rnd, index=rng)
[4]: ts.groupby([by('year'), by('month'), by('day')]).mean()
2000 1 1 0.512422
2 0.447235
3 0.290151
4 -0.227240
5 0.078815
6 0.396150
7 -0.507316
लेकिन मैं कोई त्रुटि मिलती है अगर तैरता के बजाय एक ही दशमलव मान का उपयोग कर कार्य करें:
[5]: rnd = [Decimal(x) for x in rnd]
[6]: ts = TimeSeries(rnd, index=rng, dtype=Decimal)
[7]: ts.groupby([by('year'), by('month'), by('day')]).mean() #Crash!
Traceback (most recent call last):
File "C:\Users\TM\Documents\Python\tm.py", line 100, in <module>
print ts.groupby([by('year'), by('month'), by('day')]).mean()
File "C:\Python27\lib\site-packages\pandas\core\groupby.py", line 293, in mean
return self._cython_agg_general('mean')
File "C:\Python27\lib\site-packages\pandas\core\groupby.py", line 365, in _cython_agg_general
raise GroupByError('No numeric types to aggregate')
pandas.core.groupby.GroupByError: No numeric types to aggregate
त्रुटि संदेश है "GroupByError ('नहीं सांख्यिक प्रकार कुल के लिए')"। क्या टाइमसरीज़ या डेटाफ्रेम पर दशमलव, मानों सहित समेकन, माध्य, और क्वांटिलॉन जैसे मानक समेकन का उपयोग करने का कोई मौका है?
यह क्यों काम नहीं करता है और यदि संभव नहीं है तो समान रूप से तेज़ विकल्प रखने का कोई मौका है?
संपादित करें: मैं बस महसूस किया कि अन्य कार्यों (न्यूनतम, अधिकतम, मंझला, आदि) के सबसे ठीक नहीं बल्कि मतलब समारोह है कि मैं सख्त :-(जरूरत है काम
मैं नहीं हूँ। निश्चित रूप से, लेकिन मैं हाल ही में उस मुद्दे में भी भाग गया। मैंने बस दशमलव() मानों को फ्लोट में पुन: स्थापित करने और फिर फ्लोट मानों के साथ डेटा फ्रेम बनाने का अंत किया। – reptilicus