Pandas實(shí)現(xiàn)批量拆分與合并Excel的示例代碼
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
將一個(gè)EXCEL等份拆成多個(gè)EXCEL
將多個(gè)小EXCEL合并成一個(gè)大EXCEL并標(biāo)記來(lái)源
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、拆分成小表格
代碼如下(示例):
import pandas as pd import os work_dir=r"G:\360Downloads\myself\zuoye\合并拆分" splits_dir=f"{work_dir}\splits" #如果不存在splits文件夾則創(chuàng)建它 if not os.path.exists(splits_dir): os.mkdir(splits_dir) #引入源文件 df_source=pd.read_excel(f"{work_dir}/5月份臺(tái)賬.xlsx",sheet_name="5月份臺(tái)賬87334",skiprows=2) df_source.head(3) df_source.index df_source.shape total_row_count=df_source.shape[0] total_row_count #拆分成多個(gè)大小相同的excel #1.使用df.iloc方法 #2.使用dataframe.to_excel保存到每個(gè)小excel中 #計(jì)算拆分后小excel的行數(shù) user_names=["xiaoA","xiaoB","xiaoC","wmy","jzz","xmw"] #每個(gè)人的任務(wù)數(shù) split_size=total_row_count//len(user_names) if total_row_count%len(user_names)!=0: split_size+=1 split_size #拆分多個(gè)dataframe df_subs=[] #enumerate() 函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列 for idx,user_name in enumerate(user_names): #iloc的開(kāi)始索引 begin=idx*split_size #iloc的結(jié)束索引 end=begin+split_size #實(shí)現(xiàn)df按照iloc拆分 df_sub=df_source.iloc[begin:end] #將每個(gè)子df存入列表 df_subs.append((idx,user_name,df_sub)) #將每個(gè)dataframe存入excel for idx,user_name,df_sub in df_subs: filename=f"{splits_dir}/ee_{idx}_{user_name}.xlsx" df_sub.to_excel(filename,index=False)
二、合并excel
1.介紹
1、遍歷文件夾,得到要合并的excel文件列表
2、分別讀取到dataframe,給每一列標(biāo)記來(lái)源
3、使用pd.conca進(jìn)行df批量合并
4、將合并后的dataframe輸出到excel
2.代碼
代碼如下(示例):
import pandas as pd import os work_dir=r"G:\360Downloads\myself\zuoye\合并拆分" splits_dir=f"{work_dir}\splits" #如果不存在splits文件夾則創(chuàng)建它 if not os.path.exists(splits_dir): os.mkdir(splits_dir) #遍歷文件夾,得到要合并的excel名稱列表 excel_names=[] for excel_name in os.listdir(splits_dir): excel_names.append(excel_name) excel_names df_list=[] for excel_name in excel_names: #讀取每個(gè)excel到df excel_path=f"{splits_dir}/{excel_name}" df_split=pd.read_excel(excel_path) username=excel_name.replace("ee_","").replace(".xlsx","")[2:] print(excel_name,username) #添加列,用戶名字 df_split["username"]=username df_list.append(df_split) #concat合并 df_merged=pd.concat(df_list) df_merged.shape df_merged.head() df_merged["username"].value_counts() #輸出 df_merged.to_excel(f"{work_dir}/merged.xlsx",index=False)
到此這篇關(guān)于Pandas實(shí)現(xiàn)批量拆分與合并Excel的示例代碼的文章就介紹到這了,更多相關(guān)Pandas拆分合并Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3讀取autocad圖形文件.py實(shí)例
這篇文章主要介紹了python3讀取autocad圖形文件.py實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python word實(shí)現(xiàn)讀取及導(dǎo)出代碼解析
這篇文章主要介紹了Python word實(shí)現(xiàn)讀取及導(dǎo)出代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07python讀取mat文件生成h5文件的實(shí)現(xiàn)
這篇文章主要介紹了python讀取mat文件生成h5文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07python selenium實(shí)現(xiàn)發(fā)送帶附件的郵件代碼實(shí)例
這篇文章主要介紹了python selenium實(shí)現(xiàn)發(fā)送帶附件的郵件代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12OpenCV實(shí)現(xiàn)對(duì)象跟蹤的方法
OpenCV 是一個(gè)很好的處理圖像和視頻的工具,本文主要介紹了OpenCV 進(jìn)行對(duì)象跟蹤,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10創(chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子
今天小編就為大家分享一篇?jiǎng)?chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11實(shí)例詳解python函數(shù)的對(duì)象、函數(shù)嵌套、名稱空間和作用域
這篇文章主要介紹了python函數(shù)的對(duì)象、函數(shù)嵌套、名稱空間和作用域 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Python疫情確診折線圖實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例詳解
數(shù)據(jù)可視化是指用圖形或表格的方式來(lái)呈現(xiàn)數(shù)據(jù)。圖表能夠清楚地呈現(xiàn)數(shù)據(jù)性質(zhì),?以及數(shù)據(jù)間或?qū)傩蚤g的關(guān)系,可以輕易地讓人看圖釋義。用戶通過(guò)探索圖(Exploratory?Graph)可以了解數(shù)據(jù)的特性、尋找數(shù)據(jù)的趨勢(shì)、降低數(shù)據(jù)的理解門檻2022-09-09