Python在实验室设备预约机时统计中的应用

2020-01-08 02:22马玲乌李瑛王英韩晓佳吴炜文
现代信息科技 2020年15期
关键词:数据统计实验室管理

马玲 乌李瑛 王英 韩晓佳 吴炜文

摘  要:Python因其简单易学及强大的第三方库支持等优点,逐渐在数据分析、图像处理、数值计算和科学计算等众多领域得到了越来越广泛的应用。通过使用Python,并借助其核心数据分析库Pandas,实现了对实验室设备预约机时记录的便捷的数据导入、数据筛选、数据分析和结果输出,并且该方法编程简单、代码简洁、运行效率高,非常适用于实验室管理中存在大量实验记录的数据统计相关工作。

关键词:Python;Pandas;数据统计;实验室管理

中图分类号:TP311.1       文献标识码:A 文章编号:2096-4706(2020)15-0027-03

Abstract:Because of its easy-to-learn and powerful third-party library support,Python has gradually been widely used in many fields such as data analysis,image processing,numerical computing,and scientific computing. This paper uses Python and its core data analysis library Pandas to realize convenient data import,data screening,data analysis and result output of the records of laboratory equipment reservations. This method has simple programming,concise code,high operating efficiency,and is very suitable for data statistics related work in laboratory management which has a large number of experimental records.

Keywords:Python;Pandas;data statistics;laboratory management

0  引  言

常用的数据分析工具有SAS、SPSS、R语言、Python,MATLAB等[1],但Python因其具有的简易性、实用性、大量的开源库和分析框架,以及庞大的社区等特点,而逐渐成为大数据分析领域最受欢迎的主流程序语言之一[2]。Pandas是Python数据分析的核心库,因纳入了大量的库和标准数据模型,故可提供大量的可快速方便处理数据的函数,以及高效处理数据集所需的工具[3-6]。

上海交通大学先进电子材料与器件校级平台,是校级大型仪器设备共享平台,平台拥有电子束曝光系统、双束聚焦离子束系统、深硅刻蚀系统、场发射扫描电子显微镜等大批先进的微纳加工及测试设备;并且在面向校内用户提供基础实验以及科研支撑的同时,也面向社会相关的科研院所和企业单位开放,故每天会产生大量的实验预约记录;如何方便快捷的根据需要统计的项目对这些实验预约记录进行汇总统计,是实验室管理统计工作的工作要点。

本文利用Python,结合Pandas库,对实验室设备预约机时汇总表的Excel文件进行了数据导入、数据筛选、数据分组聚合以及数据写入,最终方便快捷地得到了所需各设备的有效预约机时等相关参数的统计处理结果。

1  数据导入

Pandas常用的读/写数据源主要包括:文本文件、Excel文件、数据库文件和JSON文件。

本文预导入的实验室设备预约机时汇总表为Excel文件,包含总记录条数为526条,涉及设备35台;所需的统计项目及示例记录如表1所示。

在执行Pandas读取和写入Excel的操作时,需要提前安装xlrd库和xlwt库,并在当前的代码中导入这两个库。安装xlrd、xlwt库的方法:进入cmd状态,分别输入命令“pip install xlrd”“pip install xlwt”即可。

Pandas提供了read_excel()函数来读取Excel文件,将文件内容读取为DataFrame对象df。代码为:

import pandas as pd #导入pandas库

import xlrd #导入xlrd库

import xlwt #导入xlwt库

df=pd.read_excel('EquipmentStatistics_source.xlsx') #讀取原始设备机时汇总表单,默认读取第一个表单

2  数据筛选

因本实验室设备预约机时汇总表的原始表单里存在一定量的不需要纳入统计范畴的预约记录,如“预约状态”为“预约撤销”或“预约终止”的预约记录,故需要在作统计前进行相应的数据筛选,即仅筛选出“预约状态”为“预约成功”的预约记录做统计。

Pandas提供了isin()函数,来筛选出DataFrame里满足条件的行数据。

在开始进行数据筛选前,我们先对筛选前的数据,根据“预约状态”进行分类统计。Pandas提供了value_counts()函数,可对数据按指定的条件进行分类统计,即统计出条件数据出现的频率。

数据筛选前,预约记录条数按“预约状态”的统计分布如表2所示。

接下来,开始进行数据筛选,即从原始预约记录中仅筛选出“预约状态”为“预约成功”的预约记录。代码为:

print("\n开始进行数据筛选:")

title = ['预约成功']

df2 = df[(df['预约状态'].isin(title)) ] #筛选出“预约状态”为“预约成功”的数据,并将结果存储在df2

print("\n数据筛选完成!")

在数据筛选完成后,预约记录条数按“预约状态”的统计分布如表3所示。可见,已成功将“预约状态”为“预约成功”的预约记录筛选出来。

3  数据分组聚合

数据筛选完成后,需要根据“设备名称”来依次统计所有预约记录的“预约机时、加工数量、预约次数”,并且除了“预约次数”是需要计数统计外,其余两项统计项目均需要进行求和统计。

Pandas提供了groupby()分组函数,和agg()聚合函数,可方便地对多维数据按分组分别进行计数、求和、求均值、求方差,求标准差等的數据统计。

本次统计,先根据“设备名称”进行分组,再对分组后的数据对象依次进行“预约机时、加工数量、预约次数”的“求和、求和、计数”聚合运算。代码为:

df3 = df2.groupby(['设备名称']).agg({'预约机时':'sum','加工数量':'sum','预约次数':'count'})#按“设备序列号”进行多列数据的分组,并将列名称为“预约机时、加工数量、预约次数”的数据分别按照“求和、求和、计数”进行聚合运算;并将结果存储在df3

df4 = df3.sort_values(by='预约机时',ascending=False)#将df3按“预约机时”的降序进行排序,并将结果存储在df4

print(df4) #在程序运行窗口打印出排序后的数据统计结果

在程序运行窗口里可查看到按“预约机时”的降序进行排序的统计结果打印显示,统计结果示例如表4所示。可以看到Python对所筛选出的记录已根据“设备名称”,分别按“预约机时、加工数量、预约次数”实现了相应的“求和、求和、计数”统计要求,并已按照“预约机时”的降序进行了排序。

4  数据写入

届于在程序运行窗口查看到的统计结果无法直接复制粘贴至Excel里,因为复制得到的每行的所有列的列内容会存放在同一个单元格里,故为了更方便地存储和查看统计结果,特补充了将统计结果新建Excel写入的功能。Pandas提供了to_excel()函数来将DataFrame数据保存为Excel文件。代码为:

writer = pd.ExcelWriter('EquipmentStatistics_result.xlsx') #在程序文件所在路径下新建Excel

df4.to_excel(writer,sheet_name='统计结果')#将df3的内容写入新建的Excel里,并将工作表命名为“统计结果”

writer.save() #保存Excel

writer.close() #关闭Excel

运行结果:在程序文件所在的路径下自动新建了一个命名为“EquipmentStatistics_result.xlsx”的Excel工作簿,此工作簿的工作表1被命名为“统计结果”,并且本次实验室设备预约机时及相关参数的统计结果已成功的写入到了此“统计结果”工作表中。

5  结  论

综上所述,通过利用数据分析工具Python及借助其Pandas库,方便快捷地实现了对实验室设备机时等相关数据的统计处理。处理步骤包括:数据写入、数据筛选、数据分组聚合、数据写入。每个步骤,Python都提供了相应的数据调用接口,实现了对数据的快速精确计算及传输。对于越需要大量重复计算的工作内容,Python的优势越能体现,在保证计算准确度、降低人工错误的同时,极大地节省了管理人员的时间成本、提升了工作效率。

参考文献:

[1] 卢甲戎,刘权盼.如何利用Python提高统计工作效率 [J].中国统计,2020(4):71-73.

[2] 郑丹青.Python数据分析基础教程 [M].北京:人民邮电出版社,2020:7-8.

[3] 刘新鹏,高斌.利用Python和Pandas进行学生成绩处理 [J].信息与电脑(理论版),2020,32(7):41-43.

[4] 吴琳.Pandas在工资数据年度汇总中的应用 [J].现代信息科技,2020,4(10):87-88+91.

[5] 胡前防,连鹏伟,陈乾坤.Python在统计数据处理中的应用 [J].市场研究,2019(8):33-35.

[6] 马孝宗.Pandas在考勤分析中的应用 [J].电脑编程技巧与维护,2020(2):92-94.

作者简介:马玲(1985—),女,汉族,湖北荆门人,助理实验师,硕士,主要研究方向:实验室管理,预约系统管理。

猜你喜欢
数据统计实验室管理
大数据与大数据经济学
关于实验室管理的研究
基于SSH架构的高职院校实验室管理系统的实现
论高校电子实验室的日常管理与维护
浅谈实验室管理与改革