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

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

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

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

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

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

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

33c95cff9ab99e8a0a8451a11e5e0bc6.png

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

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

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

d78f3b284a679a81587bc0c27e9ee4a8.png

#数据按部门划分为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,文件内容如图所示。

934d88c356b242f359bbcdc6924c6dc4.png
9167e30b7ce306af203c6a3adc3b01d7.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值