馬玲 烏李瑛 王英 韓曉佳 吳煒文



摘 ?要: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—),女,漢族,湖北荊門人,助理實驗師,碩士,主要研究方向:實驗室管理,預約系統管理。