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计算圆周长、面积、球体体积并画出圆
Apr 08 Python
Python实现远程调用MetaSploit的方法
Aug 22 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
python 显示数组全部元素的方法
Apr 19 Python
python实现按长宽比缩放图片
Jun 07 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
python基于event实现线程间通信控制
Jan 13 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 Python
Python 高效编程技巧分享
Sep 10 Python
python 对一幅灰度图像进行直方图均衡化
Oct 27 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
重置版战役片段
2020/04/09 魔兽争霸
实现“上一页”和“下一页按钮
2006/10/09 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
php上传大文件设置方法
2016/04/14 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
js比较日期大小的方法
2015/05/12 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
原生js轮播特效
2017/05/18 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
python 删除非空文件夹的实例
2018/04/26 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
企业党员公开承诺书
2014/03/26 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
js 实现验证码输入框示例详解
2022/09/23 Javascript