python之excel加工处理小案例一则

 一、工具用途

工作中,需要对各类excel进行加工处理,当表和字段比较多时,关联条件又有多个,每次通过execl的vlookup之类的关联公式手工可以解决工作需求,但一般耗时较长,且人工统计匹配也存在出错的情况。

如果是常态会的excel加工场景工作,那么python工具值得你去研究开发一下,是时候解放双手了。

二、场景说明

假设某教育集团有三类表

A表

B表

C表

最终要根据以上三个表进行关联处理,输出目标表格如下

假设这个教育集团有10几个分校,每个分校都有这三种格式相同的表,每张表中都有若干不等的数据。现需要进行所有分校表的汇总。

这里需要解决的问题有:

  1. 所有表之间关联需要有个关键词,例如这里的ID号

  2. 汇总表里需要根据所属分校新增字段,例如学校名称

  3. 所有表汇总的数据要有合并和去重的功能

  4. 汇总表里需要将原本一些列的数据转为行数据,如各科的成绩。

三、python相关知识点

1、需要导入的模块

import pandas as pd

import os

import time

from openpyxl import load_workbook

from openpyxl.utils import get_column_letter

from openpyxl.styles import Alignment

2.模块的使用


读取execl内容
aa=pd.read_excel(r'aa.xlsx')
过滤excel需要的字段aa0=aa[['ID','姓名']]
复制excel表格内容
aa0=aa0.copy()
替换excel中列名字段aa0.rename(columns={'姓名': '个人姓名', inplace=True)
帅选excel中数据
aal = aa0.loc[(aa0['性别'] == '男')]
添加excel中的列col_name=df.columns.tolist()col_name.insert(2, '课程'),并往列中添加数据df=df.reindex(columns=col_name)df['课程'] = "数学"
输出内容到新表格df.to_excel('result1.xlsx',index=None)#匹配两张表的数据df1 = pd.read_excel('result1.xlsx')df2 = pd.read_excel('result2.xlsx')file1=pd.merge(df1,df2,on=['姓名','ID'],how='outer')file1.to_excel('result3.xlsx',index=None)
#合并两张表数据result1=pd.concat([tmp,ac2],axis=0)result1.drop_duplicates(inplace=True)#数据做去重result1.to_excel('resultfinal.xlsx',index=None)

3.彩蛋打印心形


    myData = "love"for char in myData.split():allChar = []for y in range(12, -12, -1):lst = []lst_con = ''for x in range(-30, 30):formula = ((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (y * 0.1) ** 3if formula <= 0:lst_con += char[(x) % len(char)]else:lst_con += ' 'lst.append(lst_con)allChar += lstprint('\n'.join(allChar))time.sleep(5)

4.最终输出excel格式的处理


def reset_col(filename):wb=load_workbook(filename)for sheet in wb.sheetnames:ws=wb[sheet]df=pd.read_excel(filename,sheet).fillna('-')df.loc[len(df)]=list(df.columns)                        for col in df.columns:              index=list(df.columns).index(col)                   letter=get_column_letter(index+1)                   ws.column_dimensions[letter].width=9.98 ws['A1'].alignment=Alignment(wrap_text=True)ws['E1'].alignment=Alignment(wrap_text=True)ws['I1'].alignment=Alignment(wrap_text=True)ws['G1'].alignment=Alignment(wrap_text=True)ws['H1'].alignment=Alignment(wrap_text=True)ws['J1'].alignment=Alignment(wrap_text=True)ws['K1'].alignment=Alignment(wrap_text=True)        ws['N1'].alignment=Alignment(wrap_text=True) wb.save(filename)

四、效果展示

写好的小工具加上彩蛋,制作成exe小程序给小伙伴用,小伙伴表示这下每月需要一天的活,1分钟就能搞定咯。

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

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

相关文章

cnpm安装

npm install -g cnpm --registryhttps://registry.npmmirror.com # 注册模块镜像 npm set registry https://registry.npmmirror.com // node-gyp 编译依赖的 node 源码镜像 npm set disturl https://npmmirror.com/dist // 清空缓存 npm cache clean --force // 安装c…

《深入浅出.NET框架设计与实现》笔记6.3——ASP.NET Core应用程序多种运行模式之三——桌面应用程序

ASP.NET Core应用程序可以在多种运行模式下运行&#xff0c;包括自宿主&#xff08;Self-Hosting&#xff09;、IIS服务承载、桌面应用程序、服务承载。 因此选择和时的模式很重要。 桌面应用程序 ASP.NET Core也可以用于构建跨平台的桌面应用程序&#xff0c;利用跨平台界面…

【VUE】提升大数据量场景下el-table组件的性能

提升大数据量场景下el-table组件的性能 在现代Web应用程序开发中&#xff0c;使用Vue和Element UI快速构建高效的用户界面是非常普遍的做法。特别是对于需要展示大量数据的表格组件&#xff08;<el-table>&#xff09;&#xff0c;性能优化成为了不可忽视的关键。本文将…

C#面:泛型有哪些常见约束

C# 泛型提供了一种在编译时对类型进行参数化的方式&#xff0c;可以增加代码的灵活性和重用性。在使用泛型时&#xff0c;可以对泛型参数进行约束&#xff0c;以限制可以传递给泛型类型或方法的类型。 常见的泛型约束有以下几种&#xff1a; 类型约束&#xff08;class&#…

【Web应用技术基础】JavaScript学习手册(9、11、12、13、16)

目录 JavaScript学习手册九&#xff1a;字符串 第1关&#xff1a;查找字符串的位置 第2关&#xff1a;求指定位置的字符 第3关&#xff1a;字符串的截取 第4关&#xff1a;大小写转换 第5关&#xff1a;字符串的分割 JavaScript学习手册十一&#xff1a;JSON 第1关&…

C语言:实现N的阶乘

递归&#xff1a; #include<stdio.h> long long Fet(int n) { if (n < 1) return 1; else return n * Fet(n - 1); } int main() { int n 0; scanf_s("%d", &n); int r Fet(n); printf("%d",r); ret…

深入理解操作系统与计算机体系结构

文章目录 操作系统(Operator System)为什么要有操作系统操作系统是如何进行管理的为什么说操作系统是安全&#xff0c;稳定&#xff0c;高效的理解系统调用和库函数 操作系统(Operator System) 概念&#xff1a; 操作系统&#xff08;Operating System&#xff0c;简称OS&…

一文整理完MySQL关系型数据库相关知识

MySQL关系型数据库 1. 介绍1.1 MySQL 2. 安装3. SQL语句4. SQL分类5. DDL5.1 库的DDL5.2 表、列的DDL 6. DML6.1 添加数据6.2 修改数据6.3 删除数据 7. DQL7.1 基础查询7.2 条件查询7.3 排序查询7.4 聚合函数7.5 分组查询7.6 分页查询 8. 约束8.1 约束分类 9. 多表查询9.1 内连…

Vue阶段练习:tab栏、进度条、购物车

阶段练习旨在学习完Vue 指令、计算属性、侦听器-CSDN博客后&#xff0c;进行自我检测&#xff0c;每个练习分为效果显示、需求分析、静态代码、完整代码、总结 四个部分&#xff0c;效果显示和准备代码已给出&#xff0c;我们需要完成“完整代码”部分。 目录 练习1&#xff1…

【经验分享】MySQL集群部署一:主从模式

目录 前言一、基本介绍1.1、概念1.2、执行流程 二、部署2.1、通用配置2.2、主节点配置2.3、从节点配置2.4、主从测试2.5、谈一谈主节点历史数据同步问题 前言 MySQL的部署模式常见的包括以下几种&#xff1a; 独立服务器部署主从复制部署高可用性集群&#xff08;HA&#xff…

(mac)Promethues监控之mysqld_exporter(MySQL监控)

搭建Mysqld_exporterPrometheusGrafana监控系统 普罗米修斯是后端数据监控平台&#xff0c;通过Mysqld_exporter收集mysql数据&#xff0c;Grafana将数据用图形的方式展示出来 前提&#xff1a;已安装grafana和promethues 1.下载安装Mysql &#xff08;1&#xff09;启动MySQL…

基于51单片机的电梯仿真系统

基于51单片机的电梯设计 &#xff08;仿真&#xff0b;程序PPT&#xff09; 功能介绍 具体功能&#xff1a; 1.一共4层&#xff0c;数码管显示当前楼层&#xff1b; 2.六个按键模拟电梯外按键&#xff08;1上、2上、2下、3上、3下、4下&#xff09;&#xff0c;每当按下时有…

循环单链表的介绍与操作

定义 区别 链表合并 整合代码 typedef struct node{int data;node* next;; }lnode,*linklist; lnode* n; linklist l;//定义 void init(linklist &l){lnode lnew lnode;l->nextl;lnode *rl; } //单循环链表的合并 linklist merge(linklist &a,linklist b){//存头结…

debian配置distcc分布式编译

前言 distcc 是一个用于在网络上的多台机器上分发 C、C、Objective C 或 Objective C 代码构建的程序。 distcc 应始终生成与本地构建相同的结果&#xff0c;易于安装和使用&#xff0c;并且通常比本地编译快得多。 distcc 不要求所有机器共享文件系统、同步时钟或安装相同的…

数据结构 - 队列 [动画+代码注释超详解],萌新轻松上手!!!

一. 队列的概念 队列是一种特殊的线性表&#xff0c;用于存储元素&#xff0c;并且按照先进先出(First In First Out)的顺序进行管理&#xff0c;这意味着最先加入队列的元素将会是最先从队列中被移除的元素 队列的原型&#xff1a;只允许在一端进行插入数据的操作&#xff0c…

HTTP、模块化

HTTP协议 包括请求行、请求头、请求体 http常见请求方法&#xff1a; url统一资源请求符&#xff0c;其本身也是一个字符串 响应体的内容格式是非常灵活的,常见的响应体格式有: 1.HTML 2.CSS 3. JavaScript 4.图片 5.视频 6.JSON 响应状态码&#xff1a; IP本身是一个数字…

Python 中空间数据的 10 个基本操作

读取几何图形首先,让我们从阅读几何图形开始。 来自 csv geoms = pd.read_csv(geometries.csv) 想象一下文件在列几何体下包含多边形,我们现在必须将它们转换为几何类型(默认情况下它们将被读取为字符串)。通常,几何图形将以wkt格式,我们用shapely库进行转换 # if th…

20240427纳米多孔石墨烯力学性能的调控

文献来源&#xff1a;Tuning the mechanical properties of nanoporous graphene: a molecular dynamics study DOI&#xff1a;https://orcid.org/0000-0003-3598-5439 结论&#xff1a;在这项工作中&#xff0c;使用经典MD模拟分析了扶手椅和锯齿形的NPG&#xff08;纳米多…

Ubuntu2004 CMake 使用基础

一、环境安装 win10安装wsl ubuntu2004 #windows c盘工程目录建立软链 ln -s /mnt/c /home/vrviu/ 安装cmake、c编译工具 apt install -y cmake g 二、CMakeLists.txt讲解 准备工作 首先&#xff0c;在/home/vrviu 目录建立一个 cmake 目录 以后我们所有的 cmake 练习都会放…

如何借模板助力小程序开发

不论是奶茶店还是其他行业&#xff0c;想要开发小程序&#xff0c;乔拓云都为你提供了便捷的方案。无需复杂的编程技术&#xff0c;通过套用模板的方式&#xff0c;即可快速打造专属小程序。 在线访问乔拓云官方网站&#xff0c;免费注册账号后&#xff0c;即可进入商城小程序的…