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的else子句使用指南
Feb 27 Python
Python 逐行分割大txt文件的方法
Oct 10 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
Python常用的json标准库
Feb 19 Python
Django如何防止定时任务并发浅析
May 14 Python
对于Python深浅拷贝的理解
Jul 29 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
Feb 18 Python
python3.6中anaconda安装sklearn踩坑实录
Jul 28 Python
Python jiaba库的使用详解
Nov 23 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
用Php实现链结人气统计
2006/10/09 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
PHP进程同步代码实例
2015/02/12 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
python学习笔记之多进程
2020/08/06 Python
Python Sqlalchemy如何实现select for update
2020/10/12 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
成功的餐厅经营创业计划书
2014/01/15 职场文书
素质拓展感言
2014/01/29 职场文书
厂区绿化方案
2014/05/08 职场文书
党在我心中演讲稿
2014/09/02 职场文书
学习普通话的体会
2014/11/07 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
python 经纬度求两点距离、三点面积操作
2021/06/03 Python