1.goupby()函数实例
可以对frame或者其中部分列排序,排序by可以是一列或多列,返回索引列为by中的列,而columns则为所选择的要排序的列
frame[‘price1’].groupby(frame[‘color’])
>>> frame = pd.DataFrame({'color': ['white', 'red', 'green', 'red', 'green'], 'o
bject': ['pen', 'pencil', 'pencil', 'as', 'pen'], 'price1': [4,2,1,5, 6], 'price
>>> group = frame['price1'].groupby(frame['color'])
>>> group.mean()
color
green 3.5
red 3.5
white 4.0
Name: price1, dtype: float64
>>> group
2.等级分组
frame[‘price1’, ‘price2’].groupby(frame[‘color’]) .mean()
3.组迭代
可以根据排序的组进行迭代
>>> for name, group in frame.groupby('color'):
... print(name)
... print(group)
...
green
color object price1 price2
2 green pencil 1 9
4 green pen 6 1
red
color object price1 price2
1 red pencil 2 10
3 red as 5 8
white
color object price1 price2
0 white pen 4 6
4.链式转换
以下三种方式等价
frame['price1'].groupby(frame['color']).mean()
frame.groupby(frame['color'])['price1'].mean()
frame.groupby(frame['color']).mean()['price1']
同样可以在columns上加上前缀
frame.groupby('color').mean().add_prefix('mean_')
5.分组函数
可以用agg(func)函数对frame排序后对象分组操作,分组函数即为自己定义的func,参数为Series
>>> frame.groupby('color')['price1'].agg(range)
color
green 5
red 3
white 0
Name: price1, dtype: int64
>>>
还可以是有多个聚合函数:
frame.groupby('color')['price1'].agg(['mean', 'std'])