Pandas怎样实现批量拆分Excel,代码是什么
Admin 2022-08-18 群英技术资讯 946 次浏览
今天就跟大家聊聊有关“Pandas怎样实现批量拆分Excel,代码是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“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)

1、遍历文件夹,得到要合并的excel文件列表
2、分别读取到dataframe,给每一列标记来源
3、使用pd.conca进行df批量合并
4、将合并后的dataframe输出到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)
#遍历文件夹,得到要合并的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)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。本文将利用shutil模块实现文件夹的复制删除与裁剪,需要的可以参考一下
pygame是python用来写游戏的扩展包,用这个扩展包,可以比较容易的构造一个游戏窗口,这篇文章主要给大家介绍了关于如何利用Python创建一个游戏窗口的相关资料,需要的朋友可以参考下
这篇文章主要为大家介绍了python的tkinter实现简单登录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
TensorFlow使用的求导方法称为自动微分(Automatic Differentiation),它既不是符号求导也不是数值求导,而类似于将两者结合的产物。最基本的原理就是链式法则,关键思想是在基本操作(op)的水平上应用符号求导,并保持中间结果(grad)。
在python,还有一个写入文件的方法,那就是和它长得很像的writeline函数。这两者具体如何使用,有什么区别吗?本文小编从参数、格式、用法和具体使用向大家介绍python中write和writelines的区别。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008