Pandas实现批量拆分与合并Excel的示例代码


Posted in Python onMay 30, 2022

前言

提示:这里可以添加本文要记录的大概内容:

将一个EXCEL等份拆成多个EXCEL

将多个小EXCEL合并成一个大EXCEL并标记来源

提示:以下是本篇文章正文内容,下面案例可供参考

一、拆分成小表格

代码如下(示例):

import pandas as pd
import os
work_dir=r"G:\360Downloads\myself\zuoye\合并拆分"
splits_dir=f"{work_dir}\splits"
#如果不存在splits文件夹则创建它
if not os.path.exists(splits_dir):
    os.mkdir(splits_dir)
#引入源文件
df_source=pd.read_excel(f"{work_dir}/5月份台账.xlsx",sheet_name="5月份台账87334",skiprows=2)
df_source.head(3)
df_source.index
df_source.shape
total_row_count=df_source.shape[0]
total_row_count
#拆分成多个大小相同的excel
#1.使用df.iloc方法
#2.使用dataframe.to_excel保存到每个小excel中
#计算拆分后小excel的行数
user_names=["xiaoA","xiaoB","xiaoC","wmy","jzz","xmw"]
#每个人的任务数
split_size=total_row_count//len(user_names)
if total_row_count%len(user_names)!=0:
    split_size+=1
split_size
#拆分多个dataframe
df_subs=[]
#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
for idx,user_name in enumerate(user_names):
    #iloc的开始索引
    begin=idx*split_size
    #iloc的结束索引
    end=begin+split_size
    #实现df按照iloc拆分
    df_sub=df_source.iloc[begin:end]
    #将每个子df存入列表
    df_subs.append((idx,user_name,df_sub))
#将每个dataframe存入excel
for idx,user_name,df_sub in df_subs:
    filename=f"{splits_dir}/ee_{idx}_{user_name}.xlsx"
    df_sub.to_excel(filename,index=False)

Pandas实现批量拆分与合并Excel的示例代码

二、合并excel

1.介绍

1、遍历文件夹,得到要合并的excel文件列表

2、分别读取到dataframe,给每一列标记来源

3、使用pd.conca进行df批量合并

4、将合并后的dataframe输出到excel

2.代码

代码如下(示例):

import pandas as pd
import os
work_dir=r"G:\360Downloads\myself\zuoye\合并拆分"
splits_dir=f"{work_dir}\splits"
#如果不存在splits文件夹则创建它
if not os.path.exists(splits_dir):
    os.mkdir(splits_dir)
#遍历文件夹,得到要合并的excel名称列表
excel_names=[]
for excel_name in os.listdir(splits_dir):
    excel_names.append(excel_name)
excel_names
df_list=[]
for excel_name in excel_names:
    #读取每个excel到df
    excel_path=f"{splits_dir}/{excel_name}"
    df_split=pd.read_excel(excel_path)
    username=excel_name.replace("ee_","").replace(".xlsx","")[2:]
    print(excel_name,username)
    #添加列,用户名字
    df_split["username"]=username
    df_list.append(df_split)
#concat合并
df_merged=pd.concat(df_list)
df_merged.shape
df_merged.head()
df_merged["username"].value_counts()
#输出
df_merged.to_excel(f"{work_dir}/merged.xlsx",index=False)

Pandas实现批量拆分与合并Excel的示例代码

到此这篇关于Pandas实现批量拆分与合并Excel的示例代码的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
python之mock模块基本使用方法详解
Jun 27 Python
python小程序实现刷票功能详解
Jul 17 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
Python装饰器的应用场景代码总结
Apr 10 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
使用Python封装excel操作指南
Jan 29 Python
Python实现仓库管理系统
May 30 #Python
python单向链表实例详解
May 25 #Python
利用Python实现模拟登录知乎
May 25 #Python
python双向链表实例详解
May 25 #Python
Python实现双向链表基本操作
May 25 #Python
python实现双向链表原理
May 25 #Python
Python代码实现双链表
You might like
Extjs学习笔记之七 布局
2010/01/08 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
javascript中的this详解
2014/12/08 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
详解Vue之父子组件传值
2019/04/01 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
django的csrf实现过程详解
2019/07/26 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
奇怪的鱼:Weird Fish
2018/03/18 全球购物
宾馆总经理岗位职责
2014/02/14 职场文书
大学生心理活动总结
2014/07/04 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
德劲DE1105机评
2022/04/05 无线电
MySQL 计算连续登录天数
2022/05/11 MySQL