http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html
****************************************************************************************************
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
****************************************************************************************************
pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。
执行groupby后,返回的是一个GroupBy对象,它实际上还没有进行任何计算,只是含有一些有关分组键。
d = pd.DataFrame({ 'nid':[102, 100, 102, 101, 103, 102], 'wid':np.random.randint(0, 6, 6), 'tid':np.random.randint(0, 6, 6), 'other':np.random.randint(10, 100, 6) }) index = pd.date_range('20161001', periods=6) d.index = index nids = [102, 103] d1 = d.query('nid in @nids') d2 = d1.loc[:,['nid','wid','tid']] d3 = d2.groupby(['nid', 'wid'], sort=False) d4 = d3.mean() print d print d1 print d2 print d3 print d4 print type(d3)
#输出 nid other tid wid 2016-10-01 102 74 1 3 2016-10-02 100 96 1 5 2016-10-03 102 68 5 5 2016-10-04 101 30 5 4 2016-10-05 103 43 1 5 2016-10-06 102 71 4 3 nid other tid wid 2016-10-01 102 74 1 3 2016-10-03 102 68 5 5 2016-10-05 103 43 1 5 2016-10-06 102 71 4 3 nid wid tid 2016-10-01 102 3 1 2016-10-03 102 5 5 2016-10-05 103 5 1 2016-10-06 102 3 4 <pandas.core.groupby.DataFrameGroupBy object at 0x00000000064B5208> tid nid wid 102 3 2.5 5 5.0 103 5 1.0 <class 'pandas.core.groupby.DataFrameGroupBy'>