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实现一个简单的项目监控
Mar 31 Python
用Python实现协同过滤的教程
Apr 08 Python
在Python中操作日期和时间之gmtime()方法的使用
May 22 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
浅谈Pycharm中的Python Console与Terminal
Jan 17 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
Python二维码生成识别实例详解
Jul 16 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 Python
Python docx库删除复制paragraph及行高设置图片插入示例
Jul 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
无线电的诞生过程
2021/03/01 无线电
PHP 数组入门教程小结
2009/05/20 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
python之wxPython菜单使用详解
2014/09/28 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
使用Python实现音频双通道分离
2020/12/25 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
高中生期末评语大全
2014/01/28 职场文书
清明节演讲稿
2014/05/27 职场文书
司法所长先进事迹
2014/06/02 职场文书
工作求职信
2014/07/04 职场文书
个人委托书范本
2014/09/13 职场文书
导游词之广西漓江
2019/11/02 职场文书
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android