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'>

看这篇文章更好:http://www.aichengxu.com/view/16058