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中map和列表推导效率比较实例分析
Jun 17 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
Python实现对字符串的加密解密方法示例
Apr 29 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
python爬虫获取百度首页内容教学
Dec 23 Python
python xpath获取页面注释的方法
Jan 14 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
详解Python中pyautogui库的最全使用方法
Apr 01 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 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
默默简单的写了一个模板引擎
2007/01/02 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
Mootools 1.2教程 函数
2009/09/15 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
java必学必会之static关键字
2015/12/03 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python改变日志(logging)存放位置的示例
2014/03/27 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
python3学生名片管理v2.0版
2018/11/29 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
解决方案设计综合面试题
2015/08/31 面试题
创立科技Java面试题
2015/11/29 面试题
优秀毕业生求职推荐信范文
2013/11/21 职场文书
青春奉献演讲稿
2014/05/08 职场文书
县委务虚会发言材料
2014/10/20 职场文书
2014年环保工作总结
2014/11/26 职场文书