合并统计Excel表格
前提概述:学校要求统计晨午检未打卡人员名单
文件类型:xlsx
思路:先将分散的excel表格合并为一个总表,这部分由Python完成;接着运用excel强大的数据处理能力,筛选出目标数据(‘18软件工程B班’)作为总表sheet1;因为只要统计未打卡的人员的姓名和次数,所以把总表目标数据的姓名复制到sheet2,并在旁边标上次数1;最后运用excel的‘数据透视表’功能做出数据透视表和数据透视图,并保存大功告成。
具体步骤如下:
Step1:编写代码脚本合并所有的excel表格
目标表格:
合并代码:
import os
import pandas as pd
import numpy as np
dir = r"C:\Users\huawei\Desktop\check\计科系未晨午检名单"#设置工作路径
#新建列表,存放文件名(可以忽略,但是为了做的过程能心里有数,先放上)
filename_excel = []
#新建列表,存放每个文件数据框(每一个excel读取后存放在数据框)
frames = []
for root, dirs, files in os.walk(dir):
for file in files:
#print(os.path.join(root,file))
filename_excel.append(os.path.join(root,file))
df = pd.read_excel(os.path.join(root,file)) #excel转换成DataFrame
frames.append(df)
#打印文件名
print(filename_excel)
#合并所有数据
result = pd.concat(frames)
#查看合并后的数据
result.head()
result.shape
#保存合并的数据到电脑文件夹,并把合并后的文件命名,encoding='utf-8-sig'解除乱码
result.to_csv(r'C:\Users\huawei\Desktop\check\total.csv',sep=',',index = False,encoding='utf-8-sig')
温馨提示:大部分代码都可复用,只需改动文件夹路径即可。
Step2:筛选目标数据
Excel:开始->排序和筛选->筛选目标数据
Step3:数据清洗
-
选择姓名一列复制到sheet2,并标记次数1
-
Excel:插入->数据透视图
-
得到新表sheet3
-
大功告成保存