当前位置: 首页 > news >正文

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

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

本文利用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按列值筛选并拆分表格到多个文件的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

时间: 2019-11-02

相关文章:

  • easyui datagrid重新加载detailview异常_tomcat类加载机制了解一下
  • 关于python格式对齐的问题_python格式对齐
  • css清除浮动的几种方法_小猿圈之HTML/css清除浮动的方法都有哪些?
  • python初学者编程指南源码_如何系统地自学 Python?
  • sublime编辑python_Sublime配置python开发环境
  • python快速入门naomiceder_零基础小白python入门必看之Cartopy的基础使用
  • 为什么写了value属性 jq赋值value值不显示_Vue计算属性原理和使用场景
  • python什么为假_在Python中使用filter去除列表中值为假及空字符串的例子
  • php不调用父类构造_popchain与对应poc的构造分析
  • 最常用20000英语单词表_高中英语 | 英语单词中最常用的300+个前缀、后缀
  • python类方法继承_Python类继承(调用父类成员与方法)
  • 为什么sublime保存的文件不是html_Web前端零基础到实战全系列之HTML5工具Sublime使用和Web标准...
  • case when 子查询_SQL多表查询
  • rabbitmq入门_SpringBoot整合RabbitMQ(一)快速入门
  • select count(*) from返回的类型_SQL面试题类型整理
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 77. Combinations
  • CentOS从零开始部署Nodejs项目
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • django开发-定时任务的使用
  • JavaScript DOM 10 - 滚动
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • leetcode讲解--894. All Possible Full Binary Trees
  • Promise面试题2实现异步串行执行
  • RxJS: 简单入门
  • SwizzleMethod 黑魔法
  • 产品三维模型在线预览
  • 将 Measurements 和 Units 应用到物理学
  • 经典排序算法及其 Java 实现
  • 深入浏览器事件循环的本质
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 树莓派 - 使用须知
  • 算法系列——算法入门之递归分而治之思想的实现
  • 我的业余项目总结
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 阿里云重庆大学大数据训练营落地分享
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C语言)共用体union的用法举例
  • (java)关于Thread的挂起和恢复
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (五)IO流之ByteArrayInput/OutputStream
  • (一) storm的集群安装与配置
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)LINQ之路
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net开发时的诡异问题,button的onclick事件无效
  • .net通用权限框架B/S (三)--MODEL层(2)