添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
重感情的饭卡  ·  【SAP ...·  11 月前    · 
活泼的草稿本  ·  Android ...·  1 年前    · 
首页 > 脚本专栏 > python > Python拆分Excel表为sheet

Python将Excel表格按某列拆分为多个sheet实现过程

作者:Victor

这篇文章主要为大家介绍了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()

以上就是Python将Excel表格按某列拆分为多个sheet实现过程的详细内容,更多关于Python拆分Excel表为sheet的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
  • 详解Python3中的多重继承和混入类
    详解Python3中的多重继承和混入类
    2023-05-05
  • Python使用docx模块处理word文档流程详解
    Python使用docx模块处理word文档流程详解
    2023-05-05
  • python数组和矩阵的用法解读
    python数组和矩阵的用法解读
    2023-05-05
  • Python实现读取Linux系统的CPU以及内存占用
    Python实现读取Linux系统的CPU以及内存占用
    2023-05-05
  • Python将Excel表格按某列拆分为多个sheet实现过程
    Python将Excel表格按某列拆分为多个sheet实现过程
    2023-05-05
  • Pandas的AB BA类型数据框去重复
    Pandas的AB BA类型数据框去重复
    2023-05-05
  • 一文让你彻底搞懂Python中__str__和__repr__
    一文让你彻底搞懂Python中__str__和__repr__
    2023-05-05
  • Python游戏开发之Pygame使用的最全教程分享
    Python游戏开发之Pygame使用的最全教程分享
    2023-05-05
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号