pandas 分组、聚合函数groupby

 分组过程如下图所示:

import numpy as np
import pandas as pd
df=pd.DataFrame({'key1':list('aabbab'),
                 'key2':list('cccddd'),
                 'value1':np.arange(1,7),
                 'value2':np.arange(7,13)})
df
   key1 key2  value1  value2
0    a    c       1       7
1    a    c       2       8
2    b    c       3       9
3    b    d       4      10
4    a    d       5      11
5    b    d       6      12
### 用key1分组后创建了一个GroupBy对象,后面函数的任何操作都是基于这个对象的,这一步没有进行运算。
df['value1'].groupby(df['key1']
<pandas.core.groupby.groupby.SeriesGroupBy object at 0x0000000008D74F60>
group=df['value1'].groupby(df['key1'])
group.mean()   ### 分组后求平均
key1
a    2.666667
b    4.333333
group.max()    ### 分组后求最大值
key1
a    5
b    6
group.min()    ### 分组后求最小值
key1
a    1
b    3
group.sum()    ### 分组后求和
key1
a     8
b    13
group.count()  ### 分组后计数
key1
a    3
b    3
df[['value1','value2']].groupby(df['key1']).mean()
        value1     value2
key1                     
a     2.666667   8.666667
b     4.333333  10.333333
### 分组迭代
for name, group in df.groupby('key1'):
        print(name)
        print(group)
a
  key1 key2  value1  value2
0    a    c       1       7
1    a    c       2       8
4    a    d       5      11
b
  key1 key2  value1  value2
2    b    c       3       9
3    b    d       4      10
5    b    d       6      12

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值