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

时间:2021-05-22

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

本文利用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 pdsplit_excel_name_head = 'name_head_'split_excel_name_tail = '_name_tail.xlsx'xlsx_name = 'x:\xxxx\xxxxxxxx.xls'#用来筛选的列名filter_column_name = 'column_name'#将该列去重后保存为listdf = 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按列值筛选并拆分表格到多个文件的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章