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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
对python指数、幂数拟合curve_fit详解
Dec 29 Python
浅谈python标准库--functools.partial
Mar 13 Python
Python2和Python3的共存和切换使用
Apr 12 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python 里最强的地图绘制神器
Mar 01 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
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python处理csv中的空值方法
2018/06/22 Python
python实现屏保计时器的示例代码
2018/08/08 Python
Django celery异步任务实现代码示例
2020/11/26 Python
GUESS盖尔斯法国官网:美国时尚品牌
2016/09/23 全球购物
捷克时尚网上商店:OTTO
2018/03/15 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
物流仓管员工作职责
2014/01/06 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
暂住证明怎么写
2015/06/19 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
教学反思怎么写
2016/02/24 职场文书
python基础之类属性和实例属性
2021/10/24 Python
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技