Python将Excel表格按某列拆分为多个sheet实现过程
作者:Victor 时间:2021-06-11 06:59:54
实际数据分析中遇到需求,把某个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
标签:Python,Excel,拆分,sheet
0
投稿
猜你喜欢
使用Python文件读写,自定义分隔符(custom delimiter)
2021-12-06 08:17:51
JavaScript caller与callee属性
2009-01-19 13:39:00
Pytorch中的gather使用方法
2021-11-22 06:11:49
golang:json 反序列化的[]和nil操作
2024-04-26 17:19:24
python2和python3在处理字符串上的区别详解
2021-10-07 03:29:31
利用python爬取有道词典的方法
2021-07-08 04:42:05
python计算n的阶乘的方法代码
2023-08-20 07:33:00
详解python中的异常捕获
2021-11-21 00:52:20
js类的继承定义与用法分析
2024-04-22 22:34:07
vue+axios+java实现文件上传功能
2024-04-30 10:40:32
win10下安装两个MySQL5.6.35数据库
2024-01-16 00:50:07
C#实现复制数据库 C#将A数据库数据转到B数据库
2024-01-23 11:56:09
ORACLE 最大连接数的问题
2009-07-23 14:27:00
MySQL授权命令grant的使用方法小结
2024-01-22 14:09:22
python生成随机红包的实例写法
2021-02-20 12:30:33
使用PHP 5.0创建图形的巧妙方法
2023-10-27 00:59:07
Python实现二叉树的最小深度的两种方法
2022-05-24 03:30:17
PyQt+socket实现远程操作服务器的方法示例
2022-07-19 01:56:13
Python 冒泡,选择,插入排序使用实例
2021-11-24 21:42:35
jquery eval解析JSON中的注意点介绍
2024-04-19 10:01:07