Pandas快速实现excel分类查询并将每一类数据导入到新表格中不同Sheet中

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:工作中经常会用到这样的操作,对于老板给的一个表格,需要根据其中的某一列进行筛选,将同一类的数据粘贴到另一个表格中。


业务说明:某市高考后有一张超大的excel文件(data_A),其中记录每个考生的信息。需要将学生以学校的维度进行拆分,即将相同学校的考生放在同一张Sheet中(Sheet使用许学校来命名)。

提示:要把大象装冰箱一共分三步,完成以上操作也指需三步。下面案例可供参考。

一、导入数据

使用pandas模块读取表格,代码如下(示例):

import pandas as pd

data_A = pd.read_excel(
    "D:\Anaconda\Project\data_2022-11-24.xlsx",
    usecols=["学校","学号","姓名","性别","年龄"],
)

因为表格中有很多列,我这里只需要其中的5列数据,使用usecols导入特定的列。

二:查询并写入

2.1 创建新表格,用于存放整理好的数据

注意:这里需要重新创建一个新的表格,用于存放分类好的数据,不能将数据直接使用to_excel直接写入。

writer = pd.ExcelWriter("D:\Anaconda\Project\data_B.xlsx")

2.2 查询学校列中的所有分类

使用unique,可以查询某一列的所有分类,输出列表。

lst = data_A["学校"].unique()

2.3 将不同的学校写入新表格中的不同sheet中

通过之前的查询,将所有的学校都存在了lst中,使用for循环依次读取到不同的学校,同时将学校依次写进新表格的不同sheet中。

pandas中使用contains进行关键词的抽取,使用to_excel进行数据的导出。

for i in lst:
    fdata = data_A[data_A["学校"].str.contains(i)]
    fdata.to_excel(writer,i,index=False)

三:保存数据

writer.save()

四:完整代码

import pandas as pd

data_A = pd.read_excel(
    "D:\Anaconda\Project\data_2022-11-24.xlsx",
    usecols=["学校","学号","姓名","性别","年龄"],
)
writer = pd.ExcelWriter("D:\Anaconda\Project\data_B.xlsx")
lst = data_A["学校"].unique()
for i in lst:
    fdata = data_A[data_A["学校"].str.contains(i)]
    fdata.to_excel(writer,i,index=False)

writer.save()

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>