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

 更新时间:2019年11月05日 13:23:44   作者:lanxuxml  
这篇文章主要介绍了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按列值筛选并拆分表格到多个文件的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • python 遍历可迭代对象的实现方法

    python 遍历可迭代对象的实现方法

    本文主要介绍了python 遍历可迭代对象的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python中文件路径的拼接的几种方法实例

    Python中文件路径的拼接的几种方法实例

    在Python开发中,文件路径的拼接是一个常见而且重要的任务,正确的路径拼接可以确保程序在不同平台上都能正常运行,本文将介绍Python中文件路径拼接的几种方式,包括使用os.path.join、os.path.join、pathlib库以及os.path.join
    2023-12-12
  • 浅析对torch.unsqueeze()函数理解

    浅析对torch.unsqueeze()函数理解

    torch.unsqueeze()函数起到升维的作用,dim等于几表示在第几维度加一,这篇文章主要介绍了对torch.unsqueeze()函数理解深度解析,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • python实现sublime3的less编译插件示例

    python实现sublime3的less编译插件示例

    这篇文章主要介绍了python实现sublime3的less编译插件示例的相关资料
    2014-04-04
  • python使用matplotlib绘制等高线图的两种方法

    python使用matplotlib绘制等高线图的两种方法

    在matplotlib.pyplot 中除了可以绘制常规图表如折线、柱状、散点等,还可以绘制常用在地理上的平面展示地型的等高线图,在本中,我们将详细学习matplotlib 绘制等高线图相关属性的学习,需要的朋友可以参考下
    2023-11-11
  • Python多线程threading创建及使用方法解析

    Python多线程threading创建及使用方法解析

    这篇文章主要介绍了Python多线程threading创建及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 浅谈Pytorch中的自动求导函数backward()所需参数的含义

    浅谈Pytorch中的自动求导函数backward()所需参数的含义

    今天小编就为大家分享一篇浅谈Pytorch中的自动求导函数backward()所需参数的含义,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 利用python求解物理学中的双弹簧质能系统详解

    利用python求解物理学中的双弹簧质能系统详解

    这篇文章主要给大家介绍了关于利用python如何求解物理学中的双弹簧质能系统的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • Python 一键制作微信好友图片墙的方法

    Python 一键制作微信好友图片墙的方法

    这篇文章主要介绍了Python 一键制作微信好友图片墙的方法,有两种方法,每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • Python中collections.Counter()的具体使用

    Python中collections.Counter()的具体使用

    本文主要介绍了Python中collections.Counter()的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07

最新评论