python利用pandas实现excel数据分组汇总
之前,在知乎上看见网友提出了如下问题:假设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数据分组汇总相关推荐
- python在excel中的应用-Python利用pandas处理Excel数据的应用详解
最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...
- python与excel的应用-Python利用pandas处理Excel数据的应用
最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...
- python处理excel表格-Python利用pandas处理Excel数据的应用
最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...
- [转载] Python利用pandas处理Excel数据的应用
参考链接: Python | Pandas数据比较与选择 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...
- python pandas处理excel 统计数据,Python利用pandas处理Excel数据
小编的电脑系统是Windows10家庭版,64位.网上找了N种方法都写得特别复杂也不行,以下是我试过可行得法子. 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是 ...
- pandas玩转excel-> (2)如何利用pandas读取excel数据文件
pandas玩转excel-> (2)如何利用pandas读取excel数据文件 import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peopl ...
- pandas玩转excel-> (1)如何利用pandas创建excel数据文件
pandas玩转excel-> (1)如何利用pandas创建excel数据文件 #在Anaconda3 的Spyder中 #定义pandas模块为pd import pandas as pd ...
- 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',' ...
- python使用pandas处理excel数据
使用Python Pandas库读取excel文件(.xlsx, .xls). 使用pandas的 read_excel()方法来读取excel数据,可以读取第一个sheet,指定的sheet,多个s ...
- python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例
前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...
最新文章
- Linux-centos nginx 解决“虚拟机远程连接老是断掉” 改变网络配置
- JavaScript弹出新窗口居中显示
- 使用MLX90640自制红外热像仪(四):stm32f103c8t6刷320x240分辨率屏的时间测试
- 免费Web打印控件测试
- 人人可以理解的区块链100问——比特币可以用于支付吗?
- 美味果冻(牛客练习赛53B)
- 【NOI2014】起床困难综合症 贪心
- 【干货】Python参考书籍
- 自学python到什么程度就可以工作-零基础学到什么程度可以找一份python工作?Python学习路线规划...
- c++实现超声回波包络检测_学术简报新型电磁超声换能器,小尺寸板材缺陷检测效率高...
- bootstart讲义,不过忘了是哪个老师的了
- [Tizen开发]SDB调试工具使用简介
- uniapp 条码生成器
- 常用Fragstats景观指数
- 《麦肯锡方法》第11章 用图表说明问题-思维导图
- 互联网基础之互联网发展阶段的三阶段是什么?从门户到搜索,到移动互联网
- guet-acm-开挂的chair
- Python库(x)纯小学生(我)自制
- 岩棉墙能用CAN/ULC-S101-M89标准测试吗?
- 15年研发经验博士手把手教学:从零开始搭建智能客服