文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Pandas数据分析之批量拆分/合并Excel

2024-04-02 19:55

关注

前言

笔者最近正在学习Pandas数据分析,将自己的学习笔记做成一套系列文章。本节主要记录Pandas中数据的合并(concat和append)

将一个大的Excel等份拆成多个Excel将多个小Excel合并成一个大的Excel并且标记来源

一、假造数据


work_dir="./datas"
splits_dir=f"{work_dir}/splits"
import os
if not os.path.exists(splits_dir):
    os.mkdir(splits_dir)

#0.读取源Excel到Pandas
import pandas as pd
df_source=pd.read_excel(f"{work_dir}/1.xlsx")
df_source.head()

df_source.index

df_source.shape

total_row_count=df_source.shape[0]
total_row_count

二、程序演示

 1、将一个大Excel等份拆成多个Excel


#1.计算拆分后的每个excel的行数
#这个大excel,会拆分给这几个人
user_names=['xiao_shuai',"xiao_wang","xiao_ming","xiao_lei","xiao_bo","xiao_hong"]
#每个人的人数数目
split_size=total_row_count//len(user_names)
if total_row_count%len(user_names)!=0:
    split_size+=1
split_size

#拆分成多个dataframe
df_subs=[]
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))

#3. 将每个dataframe存入到excel
for idx,user_name,df_sub in df_subs:
    file_name=f"{splits_dir}/articles_{idx}_{user_name}.xlsx"
    df_sub.to_excel(file_name,index=False)

2、合并多个小Excel到一个大Excel


#1.遍历文件夹,得到要合并的Excel名称列表
import os
excel_names=[]
for excel_name in os.listdir(splits_dir):
    excel_names.append(excel_name)
excel_names

#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)
    #得到username
    username=excel_name.replace("articles_","").replace(".xlsx","")[2:]
    print(excel_name,username)
    #给每个df添加1列,即用户名字
    df_split["username"]=username
    df_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}/result_merged.xlsx",index=False)



总结

这就是pandas的DataFrame和存储文件之间转换的基本用法了,希望可以帮助到你。

到此这篇关于Pandas数据分析之批量拆分/合并Excel的文章就介绍到这了,更多相关Pandas批量拆分合并Excel内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯