Pandas實現(xiàn)批量拆分與合并Excel的示例代碼
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
將一個EXCEL等份拆成多個EXCEL
將多個小EXCEL合并成一個大EXCEL并標記來源
提示:以下是本篇文章正文內(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月份臺賬.xlsx",sheet_name="5月份臺賬87334",skiprows=2)
df_source.head(3)
df_source.index
df_source.shape
total_row_count=df_source.shape[0]
total_row_count
#拆分成多個大小相同的excel
#1.使用df.iloc方法
#2.使用dataframe.to_excel保存到每個小excel中
#計算拆分后小excel的行數(shù)
user_names=["xiaoA","xiaoB","xiaoC","wmy","jzz","xmw"]
#每個人的任務數(shù)
split_size=total_row_count//len(user_names)
if total_row_count%len(user_names)!=0:
split_size+=1
split_size
#拆分多個dataframe
df_subs=[]
#enumerate() 函數(shù)用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列
for idx,user_name in enumerate(user_names):
#iloc的開始索引
begin=idx*split_size
#iloc的結(jié)束索引
end=begin+split_size
#實現(xiàn)df按照iloc拆分
df_sub=df_source.iloc[begin:end]
#將每個子df存入列表
df_subs.append((idx,user_name,df_sub))
#將每個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,給每一列標記來源
3、使用pd.conca進行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:
#讀取每個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實現(xiàn)批量拆分與合并Excel的示例代碼的文章就介紹到這了,更多相關(guān)Pandas拆分合并Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
NumPy 數(shù)組花式索引(Fancy Indexing)的實現(xiàn)
NumPy的花式索引是一種強大的數(shù)組索引方式,允許通過整數(shù)數(shù)組或列表一次性訪問或修改多個數(shù)組元素,本文主要介紹了NumPy 數(shù)組花式索引(Fancy Indexing)的實現(xiàn),感興趣的可以了解一下2025-11-11
Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)
這篇文章主要介紹了Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
Python實現(xiàn)網(wǎng)絡通信的HTTP請求Socket編程Web爬蟲方法探索
隨著互聯(lián)網(wǎng)的不斷發(fā)展,Python作為一門多用途的編程語言,提供了強大的工具和庫來進行網(wǎng)絡連接和通信,本文將深入探討Python中連接網(wǎng)絡的方法,包括HTTP請求、Socket編程、Web爬蟲和REST?API的使用2024-01-01
python爬不同圖片分別保存在不同文件夾中的實現(xiàn)
這篇文章主要介紹了python爬不同圖片分別保存在不同文件夾中的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
ubuntu系統(tǒng)下使用pm2設置nodejs開機自啟動的方法
今天小編就為大家分享一篇ubuntu系統(tǒng)下使用pm2設置nodejs開機自啟動的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05

