Python将Excel表格按某列拆分为多个sheet实现过程
作者:Victor 发布时间:2021-06-11 06:59:54
标签:Python,Excel,拆分,sheet
实际数据分析中遇到需求,把某个Excel表格按照某一列分为多个sheet,并且要求如果某个key对应的行数较少应该合并到一个sheet中。
import pandas as pd
import bioquest as bq # https://jihulab.com/BioQuest/bioquest
演示
从网上找随便了个数据做演示用
input_file=r"https://gitee.com/zhjx19/chaoyanghospital/raw/master/%E6%9C%9D%E9%98%B3%E5%8C%BB%E9%99%A22018%E5%B9%B4%E9%94%80%E5%94%AE%E6%95%B0%E6%8D%AE.xlsx"
output_file=r"朝阳医院.xlsx"
key='商品名称'
读如数据,删除商品名称为na的行
data = pd.read_excel(input_file)
data.dropna(subset=key,inplace=True)
替换/
为每
,删除特殊字符(因为不能作为sheetname)
data.loc[:,key] = bq.st.replaces(string=data.loc[:,key],pattern=r"/",repl="每")
data.loc[:,key] = bq.st.replaces(string=data.loc[:,key],pattern=r"[\\*?:/\[\]]",repl="")
如果某个key对应的行数少于50则合并在合并的药物
这个sheet中,其他的key单独存在对应的sheet中
keys=data.loc[:,key].unique().tolist()
few_dict = {}
single_dict = {}
for i in keys:
data_sub = data.groupby(key).get_group(i)
if data_sub.shape[0]<50:
few_dict[i] = data_sub
else:
single_dict[i] = data_sub
合并sheet
第一次写出合并的药物sheet
few = pd.concat(few_dict,ignore_index=True)
few.to_excel(output_file, sheet_name="合并的药物", index=False)
循环append sheet,最后close
writer = pd.ExcelWriter(output_file, engine='openpyxl',mode="a")
for k,v in single_dict.items():
v.to_excel(writer, sheet_name=f"{k}", index=False)
writer.close()
来源:https://segmentfault.com/a/1190000043824695
0
投稿
猜你喜欢
- Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有
- Stream Grpc在我们单次投递的数据量很大的时候,比如传输一个二进制文件的时候,数据包过大,会造成瞬时传输压力。或者接收方接收到数据后
- 例子:(简 > 繁)面包 > 麵包 (zh-tw)寮国 > 老撾 (zh-hk)中国人寿 > 中國人壽 (zh-hk
- Tensorflow数据读取有三种方式:Preloaded data: 预加载数据Feeding: Python产生数据,再把数据喂给后端。
- 可在图片连接后面加上宽和高,如:width="150" height="50"<h
- 如何验证IP地址?sub chkIP(boardid) dim rsIP dim ipAr
- 很早就听说韩国网站的设计师们很会利用空间,来创造更多的信息承载量.最近浏览了几个韩国SHOPPING网站果不其然,就拿小小的广告轮播来说,非
- PHP中重定向网页跳转页面的方法(共三种)第一种:利用header()函数进行重定向,这也是我用的较多的。(注意!locationhe和“:
- 这份数据集来源于Kaggle,数据集有12500只猫和12500只狗。在这里简单介绍下整体思路处理数据设计神经网络进行训练测试1. 数据处理
- 本文实例讲述了php下pdo的mysql事务处理用法。分享给大家供大家参考。具体分析如下:php+mysql事务处理的几个步骤:1.关闭自动
- 如何定义记录集打开的游标类型和锁定类型?我们知道,打开记录集时,可以定义记录集打开的游标类型和锁定类型。在adovbs.inc文件中就定义了
- 今天冒出来一个想法,在仅知道数据库名的情况下,用asp得到数据库中的所有表名、所有表的字段名、以及所有字段中的内容。经过一段时间查询资料和修
- 如果你的网站涉及个人隐私或者机密性非公开的网页,怎样告诉禁止搜索引擎收录抓取,下面侯庆龙说下以下方法,希望对不想被搜索引擎收录抓取网站有所帮
- 大概在2004年初的时候,我第一次买了一本很厚的书,名字或许叫《Dreamweaver MX从入门到精通》,很认真看着书并实践操作大约三分之
- 本篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。注意!虽然这是
- detectres.asp<HTML><head><TITLE>asp教程之全能屏幕分辨率侦测</
- 第一种: <script language="javascript" type="text/javasc
- 本文实例讲述了PHP变量作用域(全局变量&局部变量)&global&static关键字用法。分享给大家供大家参考,具
- 1.如何将Query String传送到另一个ASP文件去?Response.Redirect("second.asp? 
- 小毅的blog:http://andymao.com/前天网上有个朋友发给我一个页面让我帮她看一下为什么鼠标翻转实现不了。我打开源文件看了一