Part14:Pandas批量拆分与合并Excel文件
生活随笔
收集整理的這篇文章主要介紹了
Part14:Pandas批量拆分与合并Excel文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Pandas批量拆分Excel與合并Excel
實例演示:
1.將一個大Excel等份拆成多個Excel
2.將多個小Excel合并成一個大Excel并標記來源
#本節課的數據目錄work_dir work_dir='./course_datas/c15_excel_split_merge' #work_dir下面的splits目錄,來放置拆分后的小文件 splits_dir=f'{work_dir}/splits' import os #如果splits_dir目錄不存在就創建一個小目錄 if not os.path.exists(splits_dir):os.mkdir(splits_dir)1、讀取源Excel到Pandas
import pandas as pd df_source=pd.read_excel(f'{work_dir}/crazyant_blog_articles_source.xlsx') df_source.head() df_source.index df_source.shape total_row_count=df_source.shape[0] total_row_count?
一、將一個大Excel等份拆成多個Excel
1.使用df.iloc方法,將一個人的dataframe,拆分成多個小dataframe
2.將使用dataframe.to_excel保存每個小Excel
1、計算拆分后的每個excel的行數
#將一個大的EXCEL文件拆分給這幾個人 user_name=['xiaohu','xiaoshuai','xiaolan','xiaofan','xiaok','xiaom'] #每個人的任務數目 splits_size=total_row_count//len(user_name) #判斷每個人分配的任務數是否為整數,若不為整數則+1 if total_row_count % len(user_name) !=0:splits_size+=1 splits_size2、拆分成多個dataframe
#將拆出來的小的dataframe存在df_sub[]當中 df_subs=[] for index,user_name in enumerate(user_name):#iloc的開始索引,從0開始進行索引begin=index*splits_size#iloc的結束索引end=begin+splits_size#實現df按照iloc拆分df_sub=df_source.iloc[begin:end]#將每個子df存入列表df_subs.append((index,user_name,df_sub))3、將每個datafame存入excel
for index,user_name,df_sub in df_subs:file_name=f'{splits_dir}/crazyant_blog_articles_{index}_{user_name}.xlsx'df_sub.to_excel(file_name,index=False)二、合并多個小Excel到一個大Excel
1.遍歷文件夾,得到要合并的Excel文件列表
2.分別讀取到dataframe,給每個df添加—列用于標記來源
3.使用pd.concat進行df批量合并
4.將合并后的dataframe輸出到excel
1、遍歷文件夾,得到要合并的Excel名稱列表
import os excel_names=[] for excel_name in os.listdir(splits_dir):excel_names.append(excel_name) excel_names #os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表。2、分別讀取到dataframe?
df_list=[] for excel_name in excel_names:#將每個excel讀取到df當中excel_path=f'{splits_dir}/{excel_name}'df_split=pd.read_excel(excel_path)#得到usernameusername=excel_name.replace('crazyant_blog_articles_','').replace('.xlsx','')[2:]print(excel_name,username)#給每個df添加1列,即用戶名字df_split['username']=usernamedf_list.append(df_split)3、使用pd.concat進行合并?
df_merged=pd.concat(df_list) df_merged.shape df_merged.head() df_merged['username'].value_counts()?
4、將合并后的dataframe輸出到excel中?
df_merged.to_excel(f'{work_dir}/crazyant_blog_articles_merged.xlsx',index=False)總結
以上是生活随笔為你收集整理的Part14:Pandas批量拆分与合并Excel文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux之《荒岛余生》(三)内存篇
- 下一篇: 贝叶斯分类方法-例题