pandas聚合&分组函数记录

1.聚合函数aggregate():

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(3, 4).round(3),columns = ['A', 'B', 'C', 'D'])
print(df)

(1)整体聚合:df.aggregate(np.sum),默认按列聚合,内置函数可更换

(2)对某一列聚合:df['A'].aggregate(np.sum)

(3)对多列分别聚合:df [ ['A','B'] ] .aggregate(np.sum)——>注意双层括号代表选取多列

(4)对每个列都运用不同函数:df [ ['A','B'] ] .aggregate( [ np.sum,np.mean ])

(5)对单个列运用不同函数:df ['A'].aggregate( [ np.sum,np.mean ])

(6)对不同列运用不同函数:df.aggregate( {'A':np.sum,'B':np.mean} )

2.拆分-应用-组合

(1)拆分:groupby(“key”)函数,沿任意轴分组,指定的key键可作为组名

import pandas as pd
import numpy as np
df = pd.DataFrame({'Name': ['John', 'Helen', 'Sona', 'Ella'],
   'score': [82, 98, 91, 87],
   'option_course': ['C#','Python','Java','C']} )
print(df)
#groupby分组,并用groups查看分组结果
print(df.groupby('score').groups)
#使用get_group获取某个组的内容
print(df.groupby('score').get_group(91))

(2)应用:对groupby对象应用多个聚合函数时使用agg()/aggregate()函数,结果一致

import pandas as pd
import numpy as np
df = pd.DataFrame({'name': ['John', 'Helen', 'Sona', 'Ella'],
   'score': [82, 98, 91, 87],
   'option_course': ['C#','Python','Java','C']} )
print(df)
res=df.groupby('name')
print(res['score'].agg(np.mean))
print(res['score'].agg([np.sum,np.mean]))

(3)组合:行列转换transform与过滤filter

transform( func() ):传入函数,返回一个与自身形状相同的df

函数理解:如何理解pandas中的transform函数 - 知乎 (zhihu.com)

filter函数分为两种情况:

——>与groupby合用时,可自定义筛选条件

——>单独使用时,如下所示,除去轴方向选择,其他条件不可同时出现

df.filter(
    items=对轴标签筛选
    like: 模糊查询
    regex: 正则匹配
    axis=0/1
)

函数理解例子: 

 Python学习笔记:pd.filter、query筛选数据 - Hider1214 - 博客园 (cnblogs.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值