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删除文件示例分享
Jan 28 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python hash每次调用结果不同的原因
Nov 21 Python
Python如何使用函数做字典的值
Nov 30 Python
python3实现elasticsearch批量更新数据
Dec 03 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
通过实例了解python__slots__使用方法
Sep 14 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
基于Python制作一副扑克牌过程详解
Oct 19 Python
Django多个app urls配置代码实例
Nov 26 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
Protoss热键控制
2020/03/14 星际争霸
在Windows版的PHP中使用ADO
2006/10/09 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
一些常用的Javascript函数
2006/12/22 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
python实现批量下载新浪博客的方法
2015/06/15 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python操作MySQL数据库的方法
2018/06/20 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
Python flask框架post接口调用示例
2019/07/03 Python
蔻驰法国官网:COACH法国
2018/11/14 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
有趣的广告词
2014/03/18 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android