python拆分Excel文件

按Sheet拆分Excel 或 按照某一列的不同值拆分Excel。文档样式如下:
在这里插入图片描述
结果:红色是按照Sheet名拆出的,蓝色和橙色是某个Sheet按照某列的不同值拆分的。
在这里插入图片描述

代码:

# -*- coding: utf-8 -*-
"""
拆分excel文件——按照sheet个数拆分 或者 按照列值拆分
"""import pandas as pd 
import osdef split_excel_by_sheet(file_path1):# 获取文件名称file_name = os.path.basename(file_path1)# 获取文件大小file_size = os.path.getsize(file_path1)# 文件名和扩展类型分别获取file_name_1, file_extension = os.path.splitext(os.path.basename(file_path1))# 获取excel的sheet名org_excel = pd.ExcelFile(file_path1)print('文件全称:', file_name,';大小: ',file_size ,'字节')print('文件名称:', file_name_1, ';文件类型:', file_extension)print('所含sheet', org_excel.sheet_names)# 按照sheet拆分# 遍历sheetfor sheet_name in org_excel.sheet_names:# 读取每个sheet后,单独保存df = pd.read_excel(org_excel, sheet_name) # dtype='str' 可以避免过长的数值被转为科学计数法# 在当前路径下,使用原文件名和sheet名 重新命名新文件df.to_excel('.\\' + file_name_1 + '_' + sheet_name + '.xlsx', index=None)print('split_excel_by_sheet is OK')def split_excel_by_part(file_path1):# 获取文件名称file_name = os.path.basename(file_path1)# 获取文件大小file_size = os.path.getsize(file_path1)# 文件名和扩展类型分别获取file_name_1, file_extension = os.path.splitext(os.path.basename(file_path1))# 获取excel的sheet名org_excel = pd.ExcelFile(file_path1)print('文件全称:', file_name,';大小: ',file_size ,'字节')print('文件名称:', file_name_1, ';文件类型:', file_extension)print('所含sheet', org_excel.sheet_names)sheet_name = input("请输入要拆分的sheet名:")# 检测sheet名称if sheet_name in org_excel.sheet_names:print('将拆分', file_name,'的', sheet_name, '内容')# 读取sheet_name内容df1 = pd.read_excel(file_path1, sheet_name)# 获取其列名print('包含的列为' , df1.columns.tolist())by_column_name = input("请输入要根据哪个列拆分:")# 检测列名称if by_column_name in df1.columns.tolist():print('按照',by_column_name,'列拆分,提示:')# 查看by_column_name列的内容值by_column_name_values = df1[by_column_name].unique()print(by_column_name,'列中值包含',by_column_name_values,'。同一值单独拆分成一个文件')# 使用groupby方法根据'lesson'的值拆分DataFramegrouped = df1.groupby(by_column_name)# 现在grouped是一个GroupBy对象,可以迭代它来访问每个组for key, group in grouped:print(f"Group with key: {key}")print(group)# 按照lesson列的不同值单独存一个文件group.to_excel('.\\' + file_name_1 + '_' + sheet_name + '_' + key +'.xlsx', index=None)print('Finish!')else :print('输入的',by_column_name,'?!没有叫这个名的列!')else :print('输入的',sheet_name,',此sheet名称不存在!')if __name__ == '__main__':# 文件地址file_path1 = '.\excel数据拆分.xlsx'# 按照sheet拆# split_excel_by_sheet(file_path1) # 按照sheet进行拆分# 按照部分分split_excel_by_part(file_path1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交易所 Level-2 历史行情数据自动化导入攻略

用户部署完 DolphinDB 后,需要将历史股票数据批量导入数据库,再进行数据查询、计算和分析等操作。DolphinDB 开发了 ExchData 模块,主要用于沪深交易所 Level-2 行情原始数据的自动化导入,目前已支持的数据源包括: 沪…

开源ISP介绍(2)————嵌入式Vitis搭建

Vivado搭建参考前一节Vivado基于IP核的视频处理框架搭建: 开源ISP介绍(1)——开源ISP的Vivado框架搭建-CSDN博客 导出Hardware 在vivado中导出Hardware文件,成功综合—实现—生成比特流后导出硬件.xsa文件。(注意导…

109.【C语言】数据结构之二叉树层序遍历

目录 1.知识回顾 2.代码实现 准备工作 LevelOrder函数 代码框架 关键代码 3.执行结果 1.知识回顾 层序遍历参见106.【C语言】数据结构之二叉树的三种递归遍历方式文章 截取的部分内容 定义:按层的方式遍历(,设n为树的深度,h1-->h2-->h3-->...-->hn) 以下面…

安装部署PowerDNS--实现内网DNS解析

PDNS是PowerDNS的缩写,是一个开源的DNS服务器软件。PowerDNS具有高性能、灵活性和可扩展性,可用于搭建各种规模的DNS解析服务。它支持多种后端数据库(如MySQL、PostgreSQL等),提供高度定制化的配置选项,并具…

13.在 Vue 3 中使用OpenLayers加载鹰眼控件示例教程

在 WebGIS 开发中,鹰眼控件 是一个常用的功能,它可以为用户提供当前地图位置的概览,帮助更好地定位和导航。在本文中,我们将基于 Vue 3 的 Composition API 和 OpenLayers,创建一个简单的鹰眼控件示例。 效果预览 在最…

Elasticsearch 单节点安全配置与用户认证

Elasticsearch 单节点安全配置与用户认证 安全扫描时发现了一个高危漏洞:Elasticsearch 未授权访问 。在使用 Elasticsearch 构建搜索引擎或处理大规模数据时,需要启用基本的安全功能来防止未经授权的访问。本文将通过简单的配置步骤,为单节…

使用C#基于ADO.NET编写MySQL的程序

MySQL 是一个领先的开源数据库管理系统。它是一个多用户、多线程的数据库管理系统。MySQL 在网络上特别流行。MySQL 数据库可在大多数重要的操作系统平台上使用。它可在 BSD Unix、Linux、Windows 或 Mac OS 上运行。MySQL 有两个版本:MySQL 服务器系统和 MySQL 嵌入…

计算机视觉与各个学科融合:探索新方向

目录 引言计算机视觉与其他学科的结合 与医学的结合与机械工程的结合与土木工程的结合与艺术与人文的结合发文的好处博雅知航的辅导服务 引言 计算机视觉作为人工智能领域的重要分支,正迅速发展并渗透到多个学科。通过与其他领域的结合,计算机视觉不仅…

SpringBoot期末知识点大全

一、学什么 IoC AOP:面向切面编程。 事物处理 整合MyBatis Spring框架思想! 二、核心概念 问题:类之间互相调用/实现,导致代码耦合度高。 解决:使用对象时,程序中不主动new对象,转换为由外部提…

QT模型/视图:自定义代理类型

简介 在模型/视图结构中,代理的作用就是在视图组件进入编辑状态编辑某个项时,提供一个临时的编辑器用于数据编辑,编辑完成后再把数据提交给数据模型。例如,在 QTableView 组件上双击一个单元格时,代理会提供一个临时的…

ubuntu中使用ffmpeg库进行api调用开发

一般情况下,熟悉了ffmpeg的命令行操作,把他当成一个工具来进行编解码啥的问题不大,不过如果要把功能集成进自己的软件中,还是要调用ffmpeg的api才行。 ffmpeg的源码和外带的模块有点太多了,直接用官网别人编译好的库就…

实现 DataGridView 下拉列表功能(C# WinForms)

本文介绍如何在 WinForms 中使用 DataGridViewComboBoxColumn 实现下拉列表功能,并通过事件响应来处理用户的选择。以下是实现步骤和示例代码。 1. 效果展示 该程序的主要功能是展示如何在 DataGridView 中插入下拉列表,并在选择某一项时触发事件。 2.…

Docker Compose实战一( 轻松部署 Nginx)

通过过前面的文章(Docker Compose基础语法)你已经掌握基本语法和常用指令认识到Docker Compose作为一款强大工具的重要性,它极大地简化了多容器Docker应用程序的部署与管理流程。本文将详细介绍如何使用 Docker Compose 部署 Nginx&#xff0…

【免费】如何考取HarmonyOS应用开发者基础认证和高级认证(详细教程)

HarmonyOS应用开发者认证考试PC网址 基础:华为开发者学堂 高级:华为开发者学堂 注:免费认证,其中基础认证有免费的课程,浏览器用Edge。 (新题库有点懒,不更新了,点赞收藏后找我要新题库 2024…

瑞芯微开发板 烧写固件问题

自用rk3568-firefly-itx-3568q核心板fpga自研底板,因底板所需外设、功能与原厂有较大差异,故裁剪相应sdk,编译新的内核进行烧写。然而在更改设备树过程中kernel/drivers/media/i2c/fpga.c中的像素格式MEDIA_BUS_FMT_YUYV8_2X8误改成MEDIA_BUS…

photoblog解题过程

本题要求:通过sql注入,找到数据库中的账号密码,并成功登录。登录后利用文件上传,将一句话木马上传到数据库中,然后并对网站进行控制。 解题过程 1、通过在靶机中输入ifconfig,查到ip为192.168.80.153&…

QT获取tableview选中的行和列的值

查询数据库数据放入tableview(tableView_database)后 QSqlQueryModel* sql_model new QSqlQueryModel(this);sql_model->setQuery("select * from dxxxb_move_lot_tab");sql_model->setHeaderData(0, Qt::Horizontal, tr("id&quo…

「Mac玩转仓颉内测版46」小学奥数篇9 - 基础概率计算

本篇将通过 Python 和 Cangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。 关键词 小学奥数Python Cangjie概率计算 一、题目描述 假设有一个袋子中有 5 个红球和 3 个蓝球,每次从袋子中随机…

Face2QR:可根据人脸图像生成二维码,还可以扫描,以后个人名片就这样用了!

今天给大家介绍的是一种专为生成个性化二维码而设计的新方法Face2QR,可以将美观、人脸识别和可扫描性完美地融合在一起。 下图展示为Face2QR 生成的面部图像(第一行)和二维码图像(第二行)。生成的二维码不仅忠实地保留…

电子商务人工智能指南 1/6 - 搜索、广告和发现

介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…