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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
Python中的装饰器用法详解
Jan 14 Python
Django入门使用示例
Dec 12 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
Python常用模块之requests模块用法分析
May 15 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
python 消费 kafka 数据教程
Dec 21 Python
python中数据库like模糊查询方式
Mar 02 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
大数据分析用java还是Python
Jul 06 Python
python 实现表情识别
Nov 21 Python
python turtle绘图命令及案例
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
Terran历史背景
2020/03/14 星际争霸
使用php计算排列组合的方法
2013/11/13 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
Python快速排序算法实例分析
2017/11/29 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
Django框架安装方法图文详解
2019/11/04 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
研究生自荐信
2013/10/09 职场文书
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
2014年妇联工作总结
2014/11/21 职场文书
2019消防宣传标语!
2019/07/10 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
判断Python中的Nonetype类型
2021/05/25 Python