अपडेट किया गया:
pd.TimeGrouper()
pd.Grouper()
के पक्ष में पांडा v0.21.0 में formally deprecated था।
pd.Grouper()
का सबसे अच्छा उपयोग groupby()
के भीतर है जब आप गैर-डेटाटाइम-कॉलम पर भी समूह कर रहे हैं। यदि आपको केवल आवृत्ति पर समूह करने की आवश्यकता है, तो resample()
का उपयोग करें।
उदाहरण के लिए, मान लीजिए कि आप है:
>>> df = pd.DataFrame({'a': np.random.choice(['x', 'y'], size=50),
'b': np.random.rand(50)},
index=pd.date_range('2010', periods=50))
आप कर सकता है:
>>> df.groupby(pd.Grouper(freq='M')).sum()
b
2010-01-31 18.5123
2010-02-28 7.7670
लेकिन ऊपर एक छोटे से अनावश्यक है क्योंकि आप केवल सूचकांक पर समूहीकरण रहे हैं। इसके बजाय आप कर सकता है:
>>> df.resample('M').sum()
0 1
2010-01-31 13.234 17.641
2010-02-28 9.142 9.061
इसके विपरीत, यहाँ एक मामले में जहां Grouper()
उपयोगी होगा है:
>>> df.groupby([pd.Grouper(freq='M'), 'a']).sum()
b
a
2010-01-31 x 8.9452
y 9.5671
2010-02-28 x 4.2522
y 3.5148
कुछ अधिक विस्तार के लिए, टेड Petrou के Pandas Cookbook के अध्याय 7 पर एक नज़र डालें।
स्रोत
2017-07-18 02:02:27
क्या मैं अभी भी 'df.groupby ([pd.Grouper (freq = 'm'), 'brad'] जैसी चीजें कर सकता हूं)। मतलब()'? –