Python將Excel表格按某列拆分為多個(gè)sheet實(shí)現(xiàn)過程
正文
實(shí)際數(shù)據(jù)分析中遇到需求,把某個(gè)Excel表格按照某一列分為多個(gè)sheet,并且要求如果某個(gè)key對(duì)應(yīng)的行數(shù)較少應(yīng)該合并到一個(gè)sheet中。
import pandas as pd import bioquest as bq # https://jihulab.com/BioQuest/bioquest
演示
從網(wǎng)上找隨便了個(gè)數(shù)據(jù)做演示用
input_file=r"https://gitee.com/zhjx19/chaoyanghospital/raw/master/%E6%9C%9D%E9%98%B3%E5%8C%BB%E9%99%A22018%E5%B9%B4%E9%94%80%E5%94%AE%E6%95%B0%E6%8D%AE.xlsx" output_file=r"朝陽醫(yī)院.xlsx" key='商品名稱'
讀如數(shù)據(jù),刪除商品名稱為na的行
data = pd.read_excel(input_file) data.dropna(subset=key,inplace=True)
替換/
為每
,刪除特殊字符(因?yàn)椴荒茏鳛閟heetname)
data.loc[:,key] = bq.st.replaces(string=data.loc[:,key],pattern=r"/",repl="每") data.loc[:,key] = bq.st.replaces(string=data.loc[:,key],pattern=r"[\\*?:/\[\]]",repl="")
如果某個(gè)key對(duì)應(yīng)的行數(shù)少于50則合并在合并的藥物
這個(gè)sheet中,其他的key單獨(dú)存在對(duì)應(yīng)的sheet中
keys=data.loc[:,key].unique().tolist() few_dict = {} single_dict = {} for i in keys: data_sub = data.groupby(key).get_group(i) if data_sub.shape[0]<50: few_dict[i] = data_sub else: single_dict[i] = data_sub
合并sheet
第一次寫出合并的藥物sheet
few = pd.concat(few_dict,ignore_index=True) few.to_excel(output_file, sheet_name="合并的藥物", index=False)
循環(huán)append sheet,最后close
writer = pd.ExcelWriter(output_file, engine='openpyxl',mode="a") for k,v in single_dict.items(): v.to_excel(writer, sheet_name=f"{k}", index=False) writer.close()
以上就是Python將Excel表格按某列拆分為多個(gè)sheet實(shí)現(xiàn)過程的詳細(xì)內(nèi)容,更多關(guān)于Python拆分Excel表為sheet的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python 中的collections.OrderedDict() 用法
這篇文章主要介紹了python 中的collections.OrderedDict() 用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05如何利用python寫GUI及生成.exe可執(zhí)行文件
工作中需要開發(fā)一個(gè)小工具,簡單的UI界面可以很好的提高工具的實(shí)用性,由此開啟了我的第一次GUI開發(fā)之旅,這篇文章主要給大家介紹了關(guān)于如何利用python寫GUI及生成.exe可執(zhí)行文件的相關(guān)資料,需要的朋友可以參考下2021-12-12python 判斷字符串中是否含有漢字或非漢字的實(shí)例
今天小編就為大家分享一篇python 判斷字符串中是否含有漢字或非漢字的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼
本文以微信好友列表為例給大家學(xué)習(xí)listview的相關(guān)知識(shí),通過實(shí)例demo給大家詳解qt quick-ListView仿微信好友列表和聊天列表的實(shí)現(xiàn)方法,需要的朋友參考下吧2021-06-06python+opencv3.4.0 實(shí)現(xiàn)HOG+SVM行人檢測的示例代碼
這篇文章主要介紹了python+opencv3.4.0 實(shí)現(xiàn)HOG+SVM行人檢測的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python實(shí)現(xiàn)基于標(biāo)記的分水嶺分割算法
分水嶺技術(shù)是一種眾所周知的分割算法,特別適用于提取圖片中的相鄰或重疊對(duì)象。本文將用Python實(shí)現(xiàn)基于標(biāo)記的分水嶺分割算法,感興趣的可以了解一下2022-07-07淺談python 導(dǎo)入模塊和解決文件句柄找不到問題
今天小編就為大家分享一篇淺談python 導(dǎo)入模塊和解決文件句柄找不到問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12