Python對(duì)Excel按列值篩選并拆分表格到多個(gè)文件的代碼
場(chǎng)景:集團(tuán)中心下發(fā)本省數(shù)據(jù)時(shí),并未按地市、業(yè)務(wù)拆分,現(xiàn)需要按地市、業(yè)務(wù)拆分并分發(fā)到地市。
本文利用Python的pandas包實(shí)現(xiàn)了以上場(chǎng)景。
注:本示例代碼只實(shí)現(xiàn)按單列拆分,如果需要多列篩選拆分,請(qǐng)修改本示例中的filter_column_name與city_name_to_list,并多套一層循環(huán)。
now, show u the code:
# -*- coding: utf-8 -*- """ Created on Fri Nov 1 09:53:30 2019 @author: lanxuxml 應(yīng)用場(chǎng)景: 包含多個(gè)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轉(zhuǎn)為list #如果是兩列篩選,在此處多套上一層循環(huán) #如果是多列篩選,請(qǐng)修改代碼使用多維list進(jìn)行循環(huán)遍歷 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()
總結(jié)
以上所述是小編給大家介紹的Python對(duì)Excel按列值篩選并拆分表格到多個(gè)文件的代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python OpenCV實(shí)戰(zhàn)之與機(jī)器學(xué)習(xí)的碰撞
機(jī)器學(xué)習(xí)是人工智能的子集,為計(jì)算機(jī)以及其它具有計(jì)算能力的系統(tǒng)提供自動(dòng)預(yù)測(cè)或決策的能力。本文主要介紹了OpenCV 提供的常見機(jī)器學(xué)習(xí)算法和技術(shù),用于解決計(jì)算機(jī)視覺項(xiàng)目中的實(shí)際問題,需要的朋友可以參考一下2021-12-12Python基礎(chǔ)學(xué)習(xí)之常見的內(nèi)建函數(shù)整理
所謂的內(nèi)建函數(shù),可以直接使用,而不需要import。下面這篇文章主要給大家整理介紹了關(guān)于Python基礎(chǔ)學(xué)習(xí)之常見的一些內(nèi)建函數(shù),文中通過示例代碼為大家介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09tensorflow 20:搭網(wǎng)絡(luò),導(dǎo)出模型,運(yùn)行模型的實(shí)例
這篇文章主要介紹了tensorflow 20:搭網(wǎng)絡(luò),導(dǎo)出模型,運(yùn)行模型的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05python使用pandas讀xlsx文件的實(shí)現(xiàn)
這篇文章主要介紹了python使用pandas讀xlsx文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05python 實(shí)現(xiàn)自動(dòng)遠(yuǎn)程登陸scp文件實(shí)例代碼
這篇文章主要介紹了python 實(shí)現(xiàn)自動(dòng)遠(yuǎn)程登陸scp文件實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程
當(dāng)多個(gè)進(jìn)程使用同一份數(shù)據(jù)資源的時(shí)候,因?yàn)檫M(jìn)程的運(yùn)行沒有順序,運(yùn)行起來也無(wú)法控制,如果不加以干預(yù),往往會(huì)引發(fā)數(shù)據(jù)安全或順序混亂的問題,所以要在多個(gè)進(jìn)程讀寫共享數(shù)據(jù)資源的時(shí)候加以適當(dāng)?shù)牟呗裕瑏肀WC數(shù)據(jù)的一致性問題2023-01-01Python使用百度翻譯開發(fā)平臺(tái)實(shí)現(xiàn)英文翻譯為中文功能示例
這篇文章主要介紹了Python使用百度翻譯開發(fā)平臺(tái)實(shí)現(xiàn)英文翻譯為中文功能,結(jié)合實(shí)例形式分析了Python使用request請(qǐng)求與百度翻譯API接口交互實(shí)現(xiàn)翻譯功能相關(guān)操作技巧,需要的朋友可以參考下2019-08-08