python将excel拆分到不同的sheet页

python将excel拆分到不同的sheet页

一、背景

有原始excel如下

拆分列其他属性1其他属性2
A其他1属性1
A其他2属性2
B其他3属性3
B其他4属性4
B其他5属性5
C其他6
D其他7属性7

按照“拆分列“将excel内容拆分到不同的sheet页中,sheet页的名称为”拆分列的值“

二、基本思路

  1. 获取原始excel的表头(拆分的时候需要将表头拆分到每个sheet页)
  2. 获取筛选列的枚举(需要去重,因为每个枚举不止出现一次)
  3. 定义目标文件(为了支持重跑,程序运行需要判定目标文件是否存在)
  4. 循环步骤二得到的枚举,并查找对应内容,填写到不同的sheet页

三、程序代码

# !/usr/bin/python3
# -*- coding: utf-8 -*-
# author:
# email:
# createtime:2022/12/29 8:36
# software: PyCharm
# modify:

"""
文件说明:
excel拆分,将一个excel按照某列拆分到不同的sheet页中
"""
import os
import pandas
# 文件路径
test_path = r'test.xlsx'
target_path = r'target.xlsx'
# 读取excel内容(keep_default_na设置空值的正常显示)
data_frame = pandas.DataFrame(pandas.read_excel(test_path, sheet_name='TEST', keep_default_na=False))
# 获取表头
head = data_frame.columns.values
# 获取筛选列
splite_col = data_frame['拆分列'].values.tolist()
splite_value_list = list(set(splite_col))
# 判断路径是否存在
if os.path.exists(target_path):
    os.remove(target_path)
# 拆分并写入excel
excel_writer = pandas.ExcelWriter(target_path)
for splite_value in splite_value_list:
    splite_content = data_frame[(data_frame['拆分列'] == splite_value)]
    splite_data_frame = pandas.DataFrame(columns=head, data=splite_content)
    splite_data_frame.to_excel(excel_writer, index=False, sheet_name=splite_value)
excel_writer.close()

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值