2021-01-29 对excel表现有数据的筛选汇总

前言

在nga看到楼主有如下需求:
2021-01-29 对excel表现有数据的筛选汇总_第1张图片
vba是不懂,但是python来操作这个应该还是比较简单的,正好就当练手,尝试写一下这个

目标

根据现有的excel表格分类汇总数据,并按每个公司名称整理到新的工作表中

excel表格

2021-01-29 对excel表现有数据的筛选汇总_第2张图片
只是做个演示,所以excel表做的很敷衍,看得懂就行

代码

import pandas as pd

file_path = 'danwei.xlsx'  # 定义文件路径
df = pd.read_excel(file_path, sheet_name='sheet1')#pandas读取sheet1工作表的数据
df_company = df['单位名称']#读取单位名称列,生成series类型数据
unique_company = df_company.unique()#判断唯一值,相同公司名只留一个,用于生成工作表名称

writer = pd.ExcelWriter('danwei2.xlsx') #使用excelwriter新生成一个工作表,此处定义句柄,保证后面往多个工作表内写入数据时,不被覆盖
for i in unique_company: #遍历"unique_company"列表的公司名
    df_unique_company = df[df['单位名称'].isin([i])]#每个公司为一个表,用isin()函数来筛选汇总属于这个公司的人名
    df_unique_company.to_excel(writer,i,index = False)#把每个公司的表新生成以这个公司命名的工作表
writer.save()#保存

结果表格

2021-01-29 对excel表现有数据的筛选汇总_第3张图片
已按公司名称分类汇总好

总结

代码很简单,看注释也很明了很简单,但是在写的过程中我钻了牛角尖,想着先在工作表里生成非同名工作表,再往工作表里加数据,完全没有这个必要,这是我写的无用功代码
2021-01-29 对excel表现有数据的筛选汇总_第4张图片
后来回过头来一看,甚至不需要用到xlwings,之后引以为戒

你可能感兴趣的:(python)