工作中,很多小伙伴都会遇到一些需求,将一份Excel文档按照部门进行拆分,每个部门是一个单独的工作表,或者每个部门整理的工作表汇总为一份总的工作表。读者需要注意的是,多个工作表的拆分与合并,始终在一个工作簿内操作。让我们一起通过Pandas库来实现。

本例目标:根据指定的Excel文件按照部门拆分成多个工作表,其次,根据多个工作表合并成一个工作表。

最终效果:按照部门生成工作表。

技术点:groupby()方法的使用,Excel的追加模式等。

代码编写方式:采用函数、面向过程方式编写。

接下来我们一起进行代码编写,通过2步搞定这个程序。

(1)按照部门进行分组DataFrame。

我们用到了分组这个知识点,直接使用groupby()方法对部门列做分组,分组后的数据包含部门名称和分部门的DataFrame,避免了循环获取数据的办法。

groupby()方法使用如下所示。

#数据按部门划分为DataFrame.

grouped = df.groupby('department')

print(grouped.get_group('技术部'))

for name,group in df.groupby('department'):

print(name,group)

代码执行结果后,name值为人事部、技术部等,group为人事部、技术部对应的DataFrame。请读者自行测试验证。

(2)工作表的拆分。

真正的代码来了,核心代码仅需5行。

通过下段代码演示工作表的拆分,源代码见example_split.py。

import pandas as pd

import os

curpath = os.path.dirname(__file__)

filename = os.path.join(curpath, 'example_merge.xlsx')

savefilename = os.path.join(curpath, 'example_merge_1.xlsx')

//就这5句

df=pd.read_excel(filename)

writer = pd.ExcelWriter(savefilename,engine='openpyxl', mode='a')

for name,group in df.groupby('department'):

group.to_excel(writer,name)

writer.save()

代码执行后生成example_merge_1.xlsx,文件内容如图所示。

dataframe两个表合并_史上代码最少的工作表拆分,仅需5行,不可思议相关推荐

  1. 2个recordset合并_史上最全!8种办法玩转Excel文字合并,总有一款适合你!

    本文作者丨 wayy - Excel 研究院 本文由「秋叶 Excel」原创发布 如需转载,请在公众号发送关键词「转载」查看说明 在日常工作过程中, 我们经常会遇到要把一串文字拼接到一起的情况. 你还 ...

  2. mysql 前沿表设计_史上最简单MySQL教程详解(基础篇)之表的维护和改造

    表结构修改 在我们实际的开发的过程,随着开发的深入,会发现我们事先设计好的表可能已经不再适合,就会设计到对表的修改和改造.这里我就向大家介绍一下一些常用的方法和情况.这里我们使用的是之前在中就已经使用 ...

  3. 史上最全MySQL 大表优化方案(长文)

    转载自  史上最全MySQL 大表优化方案(长文) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 一.单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑 ...

  4. 史上很全的注册表修改大全

    史上很全的注册表修改大全 请使用 Ctrl+F 键来查找你想要的 不想别人使用你电脑的某些功能,或是在网吧想使用某些功能,或是让自己的电脑速度更快 怎么办 如果你有点注册表的知识就OK拉 没有多深奥 ...

  5. excel批量更改超链接_批量新建Excel指定名称工作表并设置超链接!你,学会了吗?...

    文 / 雷哥+小鱼儿  编辑 / 小鱼儿 雷哥收到一份来自老板的任务,内容如下,你敢不敢挑战下? 案例:给公司几百名员工分别建档:以每个员工的名字建一个工作表,内含各自的年终奖情况,而且还要方便.快速 ...

  6. 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。

    题目要求:设顺序表va中的数据元素递增有序.试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性. 代码实现: void Insert(SqList *va,int x) {int i;if( ...

  7. Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet

    Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet 发表时间:2020-04-26 问题:从当前目录或子目录中查询符合条件的excel表格,并从这 ...

  8. 如何使用物联网低代码平台进行工作表管理?

    工作表是AIRIOT物联网低代码平台的主要功能之一,主要用来自定义业务表单,实现数据同步及业务联动,可同步本地及网络数据库,实现平台数据及第三方系统数据同步.AIRIOT工作表管理方便,可根据实际情况 ...

  9. php编写六十甲子纳音表_史上最完整的六十甲子纳音表详细说明

    六十甲子是汉族人民最早和最大的发明,其历史已有上千年,其用途是纪年.纪月.纪日.纪时.在古时候,就是我们的时钟,以六十年为一个周期,纪月为五年一个周期,纪日为六十天一个周期,纪时为五天一个周期.接下来 ...

最新文章

  1. Android -- onMeasure()源码分析
  2. Vue.js 2.x render 渲染函数 JSX
  3. Chapter11-RMAN Backups
  4. cass批量选目标快捷键_大神总结100个CAD快捷键+20个CAD制图技巧,值得收藏!
  5. Lunar New Year and Food Ordering
  6. c语言用数组实现栈的插入,用数组实现栈的功能的C语言代码?
  7. 直方图均衡[附C实现代码]
  8. 音频社交Clubhouse将支持空间音频,让聊天更具真实感
  9. 【Java】java中this$0 this$1 this$2
  10. ucc编译器(中间代码生成)
  11. 图像局部特征(十六)--SimpleBlobDetector
  12. a=a++问题引发的思考
  13. 私有服务器虚拟化软件市场排名,三大服务器虚拟化软件比拼 谁是最佳?
  14. python 解压zip rar 7z文件
  15. (转)人工智能公司Kensho是如何改变华尔街的?
  16. 启动电容与运行电容-电容-嵌入式开发-物联网开发
  17. 当幻想的小说来到现实——基于stable diffusion的小说插画生成
  18. 解决Unknown column ‘xxx‘ in ‘where clause‘问题
  19. linux(centos)内核升级
  20. 警猫眼Arduino源码分享,把闲置手机变成安防监控摄像头!

热门文章

  1. 老男孩Linux运维第41期20170924开班第五周学习重点课堂记录
  2. Kotlin成为正式的Android编程语言
  3. 简单几何(推公式) UVA 11646 Athletics Track
  4. android - Animation详解
  5. 各种Web漏洞测试平台
  6. Alt + sysrq + REISUB doesn't reboot my laptop
  7. 网路游侠:某厂家新发布的数据销毁工具
  8. numpy.linalg.svd
  9. SmartDoc(YUIDoc) 注释编写
  10. 解决ExcelReport导出Excel报Number of rules must not exceed 3错误的问题