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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值