python数据分析之pandas(12)数据聚合

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'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值