Python对Excel按列值筛选并拆分表格到多个文件的代码
场景:集团中心下发本省数据时,并未按地市、业务拆分,现需要按地市、业务拆分并分发到地市。
本文利用Python的pandas包实现了以上场景。
注:本示例代码只实现按单列拆分,如果需要多列筛选拆分,请修改本示例中的filter_column_name与city_name_to_list,并多套一层循环。
now,showuthecode:
#-*-coding:utf-8-*- """ CreatedonFriNov109:53:302019 @author:lanxuxml 应用场景: 包含多个sheet的Excel需要按列筛选出来另存为其它文件 """ importpandasaspd 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] forcity_nameincity_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) forsheet_nameinsheet_names: tmp_df=pd.read_excel(xlsx_name,sheet_name=sheet_name) ifsheet_namenotinsheet_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按列值筛选并拆分表格到多个文件的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。