网络编程
位置:首页>> 网络编程>> Python编程>> Pandas实现批量拆分与合并Excel的示例代码

Pandas实现批量拆分与合并Excel的示例代码

作者:qq_23605533  发布时间:2022-06-07 22:36:28 

标签:Pandas,拆分,合并,Excel

前言

提示:这里可以添加本文要记录的大概内容:

将一个EXCEL等份拆成多个EXCEL

将多个小EXCEL合并成一个大EXCEL并标记来源

提示:以下是本篇文章正文内容,下面案例可供参考

一、拆分成小表格

代码如下(示例):

import pandas as pd
import os
work_dir=r"G:\360Downloads\myself\zuoye\合并拆分"
splits_dir=f"{work_dir}\splits"
#如果不存在splits文件夹则创建它
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的行数
user_names=["xiaoA","xiaoB","xiaoC","wmy","jzz","xmw"]
#每个人的任务数
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() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
for idx,user_name in enumerate(user_names):
   #iloc的开始索引
   begin=idx*split_size
   #iloc的结束索引
   end=begin+split_size
   #实现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)

Pandas实现批量拆分与合并Excel的示例代码

二、合并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文件夹则创建它
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)

Pandas实现批量拆分与合并Excel的示例代码

来源:https://blog.csdn.net/qq_23605533/article/details/124669369

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com