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 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
python实现数通设备端口监控示例
Apr 02 Python
Python3学习urllib的使用方法示例
Nov 29 Python
python3模块smtplib实现发送邮件功能
May 22 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
更新修改后的Python模块方法
Mar 03 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
python能做哪方面的工作
Jun 15 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 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
FCKeditor的安装(PHP)
2007/01/13 PHP
深入PHP异步执行的详解
2013/06/03 PHP
php生成扇形比例图实例
2013/11/06 PHP
php日历制作代码分享
2014/01/20 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
两种php实现图片上传的方法
2016/01/22 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
Python网站验证码识别
2016/01/25 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
Django之form组件自动校验数据实现
2020/01/14 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
一些关于MySql加速和优化的面试题
2014/01/30 面试题
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
企业口号大全
2014/06/12 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
施工安全协议书
2016/03/22 职场文书