Python使用Pandas按Excel指定列值拆分表格为多个文件

顾言
顾言
发布时间:2026-10-13| 6人浏览过
原创

本文介绍利用Python的pandas库,针对包含多Sheet的Excel文件,根据指定列的唯一值将数据拆分并保存为多个独立Excel文件的完整代码。示例展示了如何遍历列值、处理不同Sheet以及保存结果,适用于需要按地市或业务维度分发数据的场景。

应用场景与需求

在实际业务场景中,集团中心下发给省级的数据往往未按照地市或业务类型进行预先拆分。为了便于后续分发,需要将这些数据按地市和业务维度进行拆分,并分发给对应的地市单位。

本文通过Python中的pandas库实现了上述数据处理场景。

注意:本示例代码仅演示如何按单列进行拆分。如果需要根据多列进行筛选和拆分,请修改示例中的filter_column_name与city_name_to_list变量,并在代码中增加一层循环结构。

Python实现代码

以下是具体实现代码:


# -*- 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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。