场景:集团中心下发本省数据时,并未按地市、业务拆分,现需要按地市、业务拆分并分发到地市。
本文利用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按列值筛选并拆分表格到多个文件的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
我希望能够从外部文件的值中筛选excel电子表格中的列值。 例如:列A列出了在计算机上运行的一堆程序。我在一个. txt或. csv文件中有一个“认可程序”的白名单。 如果单元格包含与. csv文件中的一个条目匹配的值,我想编写一个脚本,将从“列A”中删除条目。 例如:“A列”包含数百条从“Adobe”到“Xerox”的条目。我有我的“认可软件”清单,其中包括Adobe和Xerox。我希望Exce
我试图基于单个条件,根据多列中的值过滤数据帧,但保留我根本不想应用过滤器的其他列。 我回顾了这些答案,第三个是最接近的,但仍然没有运气: 如何按多列筛选数据帧 筛选多个列 Python熊猫-如何按一个值筛选多个列 设置: 电流输出: 期望输出: 我试过: 以及许多其他变体(,,
本文向大家介绍Python将多个excel表格合并为一个表格,包括了Python将多个excel表格合并为一个表格的使用技巧和注意事项,需要的朋友参考一下 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个。诸如此类的问题有很多。除了人工将所有表格的内容一个一个复制到汇总表格里,那么如何用Python自动实现这些工作呢~
我有很多清单 我想用excel或csv文件格式编写它们,如下所示: 当我使用csv writer时,我需要将与附加的一起使用,这样excel中的值就不会被截断。没关系,但另一个专栏仍然没有出现。 我用蟒蛇3。所以izip不起作用,我想是因为我试过了。我尝试了和,但列的长度必须相等,而且我的数据很大,我不知道如何将放入缺少的值中。此外,我想知道是否有一种方法可以代替替换来平衡我的专栏,它看起来不太好
这应该非常容易,但我无法让它工作。 我想根据两个或多个值筛选数据集。 这是否必须是一个或声明?我可以在SQL中使用?
问题内容: 我有一个文件,我想用Java读取并将其拆分为(用户输入)输出文件。这是我读取文件的方式: 如何将文件拆分为文件? 注意-由于文件中的条目数约为100k,因此我无法将文件内容存储到数组中,然后将其拆分并保存到多个文件中。 问题答案: 由于一个文件可能很大,因此每个拆分文件也可能很大。 例: 源文件大小:5GB 数字分割:5:目的地 档案大小:每个1GB(5个档案) 即使我们有这样的内存,