之前,在知乎上看见网友提出了如下问题:假设excel表中有如下数据,需要根据编码分组并并求出数量之和。但是感觉用excel自身的功能感觉操作并不简单,于是决定使用pandas解决,并尽可能多的了解一下pandas中的groupby 函数

1、groupby函数两行代码解决

# 第一个参数:哪个工作薄,第二个参数,哪个工作表
>>> df = pd.read_excel(r'C:\Users\liuchao\Desktop\Students.xlsx', 'Sheet1')
>>> df编码 组别  数量
0  K123  A  12
1  K123  A  14
2  K123  A  34
3  K124  A  32
4  K123  B  42
5  K123  B  12
6  K123  B  12
7  K124  B  43
8  K123  B  23
# 按照编码分组,并对分组结果进行求和。
>>> df.groupby(['编码']).sum()
编码   数量
K123  149
K124   75
# 先按照编码分组,再按照组别分组
>>> df.groupby(['编码', '组别']).sum()
编码 组别 数量
K123 A   60B   89
K124 A   32B   43
>>> df.groupby(['组别', '编码']).sum()
组别 编码 数量
A  K123  60K124  32
B  K123  89K124  43

2、其实groupby()中的[]接受的不仅是列名,还可以接受函数,函数会对index(在读取excel时,可以将某一列指定为index列)列中的每一个记录应用函数,并按照函数的返回结果进行分类。


(1)假设有如下需求,编码这一列中有以K开头的,也有以J开头的,那么如何按照‘编码‘’这一列中的K,J组分类求和呢?

# 读取某个excel表数据,需要指定index列,目前制定了‘编码’列
>>> df = pd.read_excel(r'C:\Users\liuchao\Desktop\Students.xlsx', 'Sheet2', index_col='编码')
>>> df
编码  组别 数量
K123  A  12
K123  A  14
K123  A  34
K124  A  32
K123  B  42
K123  B  12
K123  B  12
K124  B  43
K123  B  23
J123  B  23
J123  B  23
J124  B  23
J124  B  23
J124  B  23
# lambda x : x[0]表示对index列中的每一行记录取第一个字符,并按照结果分类,当然也可以使用def定义函数,实现比较复杂的功能
>>> df.groupby([lambda x : x[0]]).sum()数量
J  115
K  224
# 定义一个函数,仅返回每一列的第一个字符
>>> def get_first(x):return x[0]
# 应用这个函数,得到的是相同结果
>>> df.groupby([lambda x : get_first(x)]).sum()数量
J  115
K  224
# 当然,在进行以上分组后,仍然可以按照列名分组,请看如下,先按照函数分组,再按照‘组别’分组
>>> df.groupby([lambda x : get_first(x), '组别']).sum()组别 数量
J B   115
K A    92B   132

哈哈,使用pandas的groupby函数分组汇总就是这么简单强大。欢迎关注我的公众号:python小工具。关注就有福利哦

python利用pandas实现excel数据分组汇总相关推荐

  1. python在excel中的应用-Python利用pandas处理Excel数据的应用详解

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...

  2. python与excel的应用-Python利用pandas处理Excel数据的应用

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...

  3. python处理excel表格-Python利用pandas处理Excel数据的应用

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...

  4. [转载] Python利用pandas处理Excel数据的应用

    参考链接: Python | Pandas数据比较与选择 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...

  5. python pandas处理excel 统计数据,Python利用pandas处理Excel数据

    小编的电脑系统是Windows10家庭版,64位.网上找了N种方法都写得特别复杂也不行,以下是我试过可行得法子. 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是 ...

  6. pandas玩转excel-> (2)如何利用pandas读取excel数据文件

    pandas玩转excel-> (2)如何利用pandas读取excel数据文件 import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peopl ...

  7. pandas玩转excel-> (1)如何利用pandas创建excel数据文件

    pandas玩转excel-> (1)如何利用pandas创建excel数据文件 #在Anaconda3 的Spyder中 #定义pandas模块为pd import pandas as pd ...

  8. python pandas excel数据处理_Python利用pandas处理Excel数据的应用

    python如何将列表导出为csv文件 import pandas as pd list=[[1,2,3],[4,5,6],[7,8,9]] column=['column1','column2',' ...

  9. python使用pandas处理excel数据

    使用Python Pandas库读取excel文件(.xlsx, .xls). 使用pandas的 read_excel()方法来读取excel数据,可以读取第一个sheet,指定的sheet,多个s ...

  10. python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

最新文章

  1. Linux-centos nginx 解决“虚拟机远程连接老是断掉” 改变网络配置
  2. JavaScript弹出新窗口居中显示
  3. 使用MLX90640自制红外热像仪(四):stm32f103c8t6刷320x240分辨率屏的时间测试
  4. 免费Web打印控件测试
  5. 人人可以理解的区块链100问——比特币可以用于支付吗?
  6. 美味果冻(牛客练习赛53B)
  7. 【NOI2014】起床困难综合症 贪心
  8. 【干货】Python参考书籍
  9. 自学python到什么程度就可以工作-零基础学到什么程度可以找一份python工作?Python学习路线规划...
  10. c++实现超声回波包络检测_学术简报新型电磁超声换能器,小尺寸板材缺陷检测效率高...
  11. bootstart讲义,不过忘了是哪个老师的了
  12. [Tizen开发]SDB调试工具使用简介
  13. uniapp 条码生成器
  14. 常用Fragstats景观指数
  15. 《麦肯锡方法》第11章 用图表说明问题-思维导图
  16. 互联网基础之互联网发展阶段的三阶段是什么?从门户到搜索,到移动互联网
  17. guet-acm-开挂的chair
  18. Python库(x)纯小学生(我)自制
  19. 岩棉墙能用CAN/ULC-S101-M89标准测试吗?
  20. 15年研发经验博士手把手教学:从零开始搭建智能客服

热门文章

  1. 修改FTP和MSTSC默认端口号
  2. Linux中目录及其操作命令
  3. COMSOL有限元仿真深度指南:如何分析更为复杂的材料各向异性结构?
  4. TCP的SYN报文可以携带payload吗?
  5. ABP .Net Core 日志组件集成使用NLog
  6. 【学习强化学习】三、Q learning和Sarsa算法
  7. lumion室内渲染二6.3
  8. Go语言系列——Go语言介绍
  9. C语言中pow函数的使用
  10. Python 根据excel内容批量生成二维码