2017-07-18 8 views

答えて

13

更新:

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章を見てみましょう。

+1

私はまだ 'df.groupby([pd.Grouper(freq = 'M') '、' brad '])のようなことをすることができますか? –

関連する問題