python数据分组聚合案例_python数据分析实战:pandas分组聚合-自定义聚合函数

导读:

本文主要介绍利用

自定义函数

实现pandas数据聚合,约550字,正常阅读需要3~5分钟。

之前的例子(

传送门

python数据分析实战:pandas之分组聚合

python数据分析实战:pandas之层级聚合

)我们已经简单介绍了数据聚合的求和操作,此外常见的聚合还包括count,min,max,mean等。很多时候这些程序内部已经实现优化的操作并不能满足我们的实际需求,我们可以自行定制聚合函数,并应用在分组对象上。

问题描述:

利用逐小时降水资料,计算各站点的日降水总量。实际的观测站点可能会存在缺测,直接进行sum()求和操作,程序会滤去缺测值返回剩余有效值的和。如果存在的缺测过多,则返回的总降水偏差过大。现在需要设定一个阈值(如,0.1),当缺测比例超过这个阈值后,日总降水返回缺测,否则返回剩余有效值的和。

解决思路:

针对每一个分组,我们需要先统计其数据总长度和缺测数据总长度,再进行一个判断,若缺测值比例超过阈值则返回缺测,否则执行sum()操作。令x为df. PRE_1h的一个分组

统计数据长度

Records = x.count()

统计缺测长度

NA_rec = x.isnull().sum().

x.isnull()返回一个等长的逻辑序列,缺测记为True。再对结果进行sum()操作可以求得True的个数。

自定义聚合函数

具体过程:

定义聚合函数,打开文件

2.分组,自定义聚合:

最后,想要代码更加精简,可以用匿名函数代替sumpcp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值