Python对Excel按列值筛选并拆分表格到多个文件的代码


Posted in Python onNovember 05, 2019

场景:集团中心下发本省数据时,并未按地市、业务拆分,现需要按地市、业务拆分并分发到地市。

本文利用Python的pandas包实现了以上场景。

注:本示例代码只实现按单列拆分,如果需要多列筛选拆分,请修改本示例中的filter_column_name与city_name_to_list,并多套一层循环。

now, show u the code: 

# -*- coding: utf-8 -*-
"""
Created on Fri Nov 1 09:53:30 2019
@author: lanxuxml

应用场景:

 包含多个sheet的Excel 需要按列筛选出来另存为其它文件

"""
import pandas as pd
split_excel_name_head = 'name_head_'
split_excel_name_tail = '_name_tail.xlsx'
xlsx_name = 'x:\xxxx\xxxxxxxx.xls'
#用来筛选的列名
filter_column_name = 'column_name'
#将该列去重后保存为list
df = pd.read_excel(xlsx_name)
city_names = df[filter_column_name].unique().tolist()
#获取所有sheet名
df = pd.ExcelFile(xlsx_name)
sheet_names = df.sheet_names
#不需要筛选的sheet名
sheet_not_filter_names = sheet_names[9:2]
for city_name in city_names:
  city_excel_name = split_excel_name_head + str(city_name) + split_excel_name_tail
  writer = pd.ExcelWriter(city_excel_name)
  #将city_name转为list
  #如果是两列筛选,在此处多套上一层循环
  #如果是多列筛选,请修改代码使用多维list进行循环遍历
  city_name_to_list = []
  city_name_to_list.append(city_name)
  for sheet_name in sheet_names:
    tmp_df = pd.read_excel(xlsx_name, sheet_name=sheet_name)
    if sheet_name not in sheet_not_filter_names:
      #如果是两列筛选,在此处添加一行代码
     tmp_sheet = tmp_df[tmp_df[filter_column_name].isin(city_name_to_list)]
    else:
     tmp_sheet = tmp_df
    tmp_sheet.to_excel(excel_writer=writer, sheet_name=sheet_name, encoding="utf-8", index=False)
  writer.save()
  writer.close()

总结

以上所述是小编给大家介绍的Python对Excel按列值筛选并拆分表格到多个文件的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python计算已经过去多少个周末的方法
Jul 25 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
Jun 03 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
Django+Celery实现定时任务的示例
Jun 23 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 #Python
Python socket模块ftp传输文件过程解析
Nov 05 #Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 #Python
Python socket模块方法实现详解
Nov 05 #Python
基于python3 的百度图片下载器的实现代码
Nov 05 #Python
Python hashlib模块加密过程解析
Nov 05 #Python
python set集合使用方法解析
Nov 05 #Python
You might like
?算你??的 PHP 程式大小
2006/12/06 PHP
UCenter Home二次开发指南
2009/05/28 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
浅析使用Python操作文件
2017/07/31 Python
Python实现k-means算法
2018/02/23 Python
python 中如何获取列表的索引
2019/07/02 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
如何用Django处理gzip数据流
2021/01/29 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
爱情寄语大全
2014/04/09 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
区域经理岗位职责
2015/02/02 职场文书
党员读书活动心得体会
2016/01/14 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
python基础之文件处理知识总结
2021/05/23 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL