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中的__new__()方法的使用
Apr 09 Python
python的else子句使用指南
Feb 27 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
Python实现数值积分方式
Nov 20 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
python中id函数运行方式
Jul 03 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
python 实现全球IP归属地查询工具
Dec 18 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 24 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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
JavaScript Accessor实现说明
2010/12/06 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
Django 实现图片上传和下载功能
2020/12/31 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
我的画教学反思
2014/04/28 职场文书
设备管理实施方案
2014/05/31 职场文书
岳庙导游词
2015/02/04 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
六年级作文之关于梦
2019/10/22 职场文书