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写个小监控
Jan 27 Python
python数据处理实战(必看篇)
Jun 11 Python
python中logging库的使用总结
Oct 18 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
Flask框架模板继承实现方法分析
Jul 31 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
python中复数的共轭复数知识点总结
Dec 06 Python
pandas取dataframe特定行列的实现方法
May 24 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
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
学习面向对象之面向对象的术语
2010/11/30 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
js转html实体的方法
2016/09/27 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
超级搞笑检讨书
2014/01/15 职场文书
奶茶店创业计划书
2014/08/14 职场文书
工作收入住址证明
2014/10/28 职场文书
草房子读书笔记
2015/06/29 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python