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 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
浅谈django的render函数的参数问题
Oct 16 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
python opencv摄像头的简单应用
Jun 06 Python
Pycharm和Idea支持的vim插件的方法
Feb 21 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
python Xpath语法的使用
Nov 26 Python
python爬取股票最新数据并用excel绘制树状图的示例
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
PHP概述.
2006/10/09 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
angularJS开发注意事项
2018/05/26 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
Python格式化css文件的方法
2015/03/10 Python
Python线程指南详细介绍
2017/01/05 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
python安装教程
2018/02/28 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python写程序统计词频的方法
2019/07/29 Python
Python 实现自动导入缺失的库
2019/10/29 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
pandas DataFrame运算的实现
2020/06/14 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
雷蛇美国官网:Razer
2020/04/03 全球购物
物流仓储计划书
2014/01/10 职场文书
物流专员岗位职责
2014/02/17 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
赢在中国观后感
2015/06/02 职场文书
建筑工程催款函
2015/06/24 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL