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之不要红头文件(2)
Sep 28 Python
Python中的is和id用法分析
Jan 26 Python
Python切片索引用法示例
May 15 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
python实现蒙特卡罗方法教程
Jan 28 Python
python实现抽奖小程序
Apr 15 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
python梯度下降算法的实现
Feb 24 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
Pytest如何使用skip跳过执行测试
Aug 13 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 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
js获取url传值的方法
2015/12/18 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
python pdb调试方法分享
2014/01/21 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
新闻专业本科生的自我评价分享
2013/11/20 职场文书
大学生志愿者感言
2014/01/15 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
群众路线个人整改措施
2014/10/24 职场文书
安全生产工作汇报
2014/10/28 职场文书
2015年煤矿工作总结
2015/04/28 职场文书