当前位置: 首页 > news >正文

如何用pandas进行条件分组计算?

Pandas提供了强大的分组聚合功能,可以轻松进行条件分组计算和统计。本文通过一个例子,展示如何使用Pandas的`.groupby()`和`.agg()`方法进行条件分组计算。


准备数据
假设有这样一个字典数据:

dict = {
'姓名': ['张三','李四','王五','赵六'],
'1月':['100','150','200','300'],
'2月':['150','250','300','400'], 
'3月':['200','250','300','500'],
'4月':['150','300','200','400'],
'5月':['200','100','300','200'],
'6月':['200','100','300','200'],
'7月':['200','100','300','200'],
}


我们要根据这个数据计算得到这样一个结果:
   姓名  销售额大于200的月份数量  销售额大于300的月份数量
0  张三            3.0                   1.0
1  李四            3.0                   2.0 
2  王五            4.0                   3.0   
3  赵六            5.0                   4.0

分组和聚合
可以这样实现:

df = pd.DataFrame(dict)# 分组bys姓名
grouped = df.groupby('姓名')  # 销售额大于200的月份数量
cnt1 = grouped['1月'].agg(lambda x: (x>200).sum())   # 销售额大于300的月份数量
cnt2 = grouped['1月'].agg(lambda x: (x>300).sum())# 合并两个Series,重命名列  
result = pd.concat([cnt1, cnt2], axis=1).rename(columns={0:'销售额大于200的月份数量',1:'销售额大于300的月份数量'})  print(result)

1. 使用`df.groupby('姓名')`根据'姓名'列进行分组
2. 使用`.agg()`和匿名函数`lambda x: (x>200).sum()`计算每组的销售额大于200的月份数量
3. 同理计算销售额大于300的月份数量
4. 使用`pd.concat()`将两个Series合并,并重命名列
5. 最终得到所需的结果DataFrame

http://www.lryc.cn/news/92172.html

相关文章:

  • tomcat如何调优,涉及哪些参数?
  • java培训机构学校教学教务选课管理平台springboot+vue
  • 半导体(TSS)放电管的两大选购注意事项及选型小策略
  • 05-使用Vue3 + Vue CLI 实现前端模块的搭建
  • 3.1 增加多进程执行playwright
  • 关于单片机的时钟浅谈及STM32F103/F030单片机的内外时钟切换问题
  • centos6.10环境下安装php7.4(基于WLNMP包)
  • Qt使用第三方库openssl进行RSA加密解密操作详解
  • 激发数学思维:GPT-4实证研究探索挑战性数学问题
  • 如何配置IP地址
  • CentOS + Nginx 环境自动申请和部署Let‘s Encrypt免费SSL证书教程
  • 浅谈对BI工具价值的看法
  • 创建定时任务
  • MyBatis的使用、Spring AOP、Spring事务
  • Apache Doris 冷热分层技术如何实现存储成本降低 70%?
  • MySQL 两个备机同时挂掉故障分析
  • 序列化与反序列化深入理解
  • hudi系列-小文件优化
  • mysql 是否包含 返回索引 截取字符串
  • 【LeetCode】74. 搜索二维矩阵
  • Nginx rewrite
  • 【数据分享】1929-2022年全球站点的逐日降水量(Shp\Excel\12000个站点)
  • 【论文阅读】(2013)Exact algorithms for the bin packing problem with fragile objects
  • K8S YAML 部署XXLJOB 集群
  • Linux防火墙学习笔记3
  • 数仓用户行为数据分析
  • RK3288 Android5.1添加WiFiBT模块AP6212
  • 使用 YApi 管理 API 文档,测试, mock
  • chatgpt生成【2023高考作文】北京卷二 - 亮相
  • 实验四、shell编程