999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Pandas進行關鍵部位維修周期分析

2020-08-17 09:24:23馬孝宗王雪山魏景春
現代信息科技 2020年9期
關鍵詞:數據分析

馬孝宗 王雪山 魏景春

摘? 要:以關鍵部位維修周期分析為例,詳細闡述了基于Pandas對Excel表格進行數據導入、清洗無效行、清洗無效列、數據透視、數據合并重塑、排序與排名、分組運算的實現過程。該方法解決了關鍵部位維修周期分析中的存在數據量大、基礎數據不規范、計算過程復雜等難點,實現了關鍵部位維修周期分析的自動化。該方法也適用于人事數據、財務數據的年度匯總,具有良好的實用性與推廣價值。

關鍵詞:Pandas;運維記錄;關鍵部位;數據分析

中圖分類號:TP391? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)09-0148-03

Maintenance Cycle Analysis of Key Parts Based on Pandas

MA Xiaozong,WANG Xueshan,WEI Jingchun

(Cigarette Rolling Department of Zhumadian Cigarette Factory of Henan Zhongyan Industry Co.,Ltd.,Zhumadian? 463000,China)

Abstract:Taking the maintenance cycle analysis of key parts as an example,the realization process of data import,invalid row cleaning,invalid column cleaning,data perspective,data consolidation and reconstruction,sorting and ranking,grouping operation of Excel tables based on Pandas is described in detail. This method solves the problems of large amount of data,nonstandard basic data and complex calculation process in the analysis of key partsmaintenance cycle,and realizes the automation of the analysis of key partsmaintenance cycle. This method is also applicable to the annual summary of personnel data and financial data,and has good practicability and promotion value.

Keywords:Pandas;operation and maintenance records;key parts;data analysis

0? 引? 言

在先進的卷煙工業中,一般采用裝備管理系統記錄設備維修、運行數據,裝備管理系統是集設備運行維護、點檢管理、潤滑管理、保養管理、維修管理、零備件申報與發放為一體的信息系統,其提供的維修實施報表和運維報表記錄了機組名稱、維修部位、維修工時、備件費用、設備總產量、制度時間、保養時間等信息。為了對關鍵部位進行重點維保,需要摸清各機組的關鍵部位和對應的維修周期,為此需要對多年的維修實施記錄、運維記錄進行統計分析,但該分析過程存在數據量大、基礎數據不規范、計算過程復雜等難點,分析過程費時費力。

Pandas是Python的一個數據分析包。其提供了大量快速便捷地處理數據的函數和方法,不但包含常見的計數、篩選、排序、分組運算、描述性統計、數據透視、數據合并與重塑等分析功能,還提供了自定義函數功能以滿足用戶個性化的需求。借助Pandas可以對維修實施記錄、運維記錄進行高效的數據導入、數據清洗、個性化分析。下面介紹基于Pandas進行關鍵部位維修周期分析的方法。

1? 需求分析

關鍵部位維修周期分析的數據來源包括維修實施記錄、運維記錄兩個Excel文件。維修實施記錄包括機組名稱、維修部位、維修工時、備件費用等信息,運維記錄包括機組名稱、設備總產量、制度時間、保養時間等信息。關鍵部位維修周期分析結果分為兩個階段:第一個階段根據維修頻次、維修工時、備件費用確定各機組的關鍵部位;第二個階段根據維修頻次、制度時間、保養時間確定各機組各關鍵部位的維修周期。

在關鍵部位年度維修周期分析中存在以下難點:一是數據量大,其數據來源于多年的維修實施記錄、運維記錄;二是數據不規范,比如部分記錄的維修部位與機組名稱不標準或設備總產量為零的無效記錄;三是標題行位置不確定,維修實施記錄、運維記錄自系統導出時有空行且標題行位置不統一;四是關鍵部位的確定涉及維修頻次、維修工時、備件費用三個因素,計算過程復雜;五是要將各機組關鍵部位、維修周期等分析結果匯至一處,便于查看與比對。

2? 編程實現

基于Pandas進行關鍵部位維修周期分析,包括標題行識別、數據導入、數據清洗、數據分析、數據導出五個步驟。

2.1? 編程環境

編程環境采用Windows下的Anaconda軟件,Anaconda包含了conda、Python在內的大量科學包及其依賴項,以及高效的Python開發環境Spyder。具體開發環境為:Windows 7/10操作系統、Anaconda3-5.3.0(64 bit)。

2.2? 標題行識別

自裝備管理系統導出的維修實施記錄、運維記錄中既有空行又有表頭,Pandas提供的skip_blank_lines方法可在導入Excel數據時跳過空行,卻無法跳過表頭,影響下一步數據處理。為此設計識別標題行的自定義函數,利用空行、表頭導入時產生大量“Unnamed”字符的特點,判斷Excel標題行所在位置并返回正確的數據幀。關鍵代碼如下:

def check_excel(f):

sign = 0#返回正確數據幀的標志

for i in range (10):

df = pd.read_excel(f, skiprows=i, header=0)

cols = df.columns.tolist()

cols = [str(s)[:7] for s in cols].count('Unnamed')

if df.shape[1] > cols * 2:#如果標題行Unnamed字符較少

return df#返回該正確數據幀

sign = 1

else:

pass

2.3? 數據導入

首先獲取當前工作目錄下的所有文件名,判斷文件的后綴名是否是“.xlsx”或“.xls”并且文件名包含“維修實施”或“運維”;接著創建一個標準的機組名稱列表,便于下一步清洗數據;最后將“維修實施記錄”和“運維記錄”分別導入為Pandas的數據幀。根據自定義函數check_excel保證數據導入時標題行位置正確。關鍵代碼如下:

files = os.listdir()#遍歷當前目錄下文件名

order_name = ['卷接' + str(i + 1) + '號' for i in range(7)] + ['包裝' + str(i + 1) + '號' for i in range(7)]#創建標準的機組名稱

l_f = []

for f in files:

if (f.endswith('.xlsx') or f.endswith('.xls')) and '維修實施' in f:

l_f.insert(0,f)

elif (f.endswith('.xlsx') or f.endswith('.xls')) and '運維' in f:

l_f.append(f)

else:

pass

if len(sign_f==2):#維修實施表和運維記錄表同時存在才導入數據

df_data1 = check_excel(l_f[0])

df_data2 = check_excel(l_f[1])

else:

os._exit(0)

2.4? 數據清洗

導入后的數據通常包含無效值、缺失值、重復值、錯誤值等,通過數據清洗的過程過濾掉不符合要求的數據。Pandas中過濾數據的常見操作包括篩選、刪除、填充、替換等。維修實施表中需要清洗的數據包括三種:一是無效記錄;二是“機組名稱”不標準;三是“部位名稱”不標準。運維記錄表中需要清洗的數據包括兩種:一是無效記錄;二是“設備總產量”為0。通過篩選的方法清洗數據,關鍵代碼如下:

df_data1 = df_data1[['機組名稱', '部位名稱', '維修工時(分鐘)', '備件費用']]

df_data2 = df_data2[['機組名稱', '制度班次時間(h)', '保養時間(h)', '設備總產量']]

df_data1 = df_data1[((df_data1['機組名稱'].isin(order_name))& (~df_data1['部位名稱'].isin(order_name)& (df_data1 ['記錄狀態']=='已提交'))]]

df_data2 = df_data2[((df_data2['記錄狀態']=='已提交') & (df_data2['設備總產量'] > 0))]

2.5? 數據分析

Pandas中常用的數據分析方式包括數據透視、數據合并重塑、排序與排名、分組運算等。首先對維修實施記錄進行數據透視,統計各機組的維修頻次、維修工時、備件費用;接著依據維修頻次、維修工時、備件費用進行綜合排名,返回排名前三的關鍵部位名稱、維修頻次;然后對運行記錄表進行數據透視,統計各機組、各部位的生產時間;最后以“機組名稱”為連接鍵合并數據,得到各機組的關鍵部位名稱、維修頻次、生產時間并計算出維修周期。關鍵代碼如下:

df_頻次 = pd.pivot_table(df_data1, index=['機組名稱', '部位名稱'], values=['維修工時(分鐘)'],aggfunc=['count']).reset_index()

df_時間 = pd.pivot_table(df_data1, index=['機組名稱', '部位名稱'], values=['維修工時(分鐘)'],aggfunc=[np.sum]). reset_index()

df_費用 = pd.pivot_table(df_data1, index=['機組名稱', '部位名稱'], values=['備件費用'],aggfunc=[np.sum]).reset_index()

df_data1 = pd.merge(df_頻次, df_時間, on=['機組名稱', '部位名稱'], how='left')

df_data1 = pd.merge(df_data1, df_費用, on=['機組名稱', '部位名稱'], how='left')

df_data1['排名'] = df_data1.groupby(['機組名稱'])['維修頻次'].rank(ascending=False, method='dense') * 0.4+df_data1.

groupby(['機組名稱'])['維修工時'].rank(ascending=False,method ='dense') * 0.4+df_data1.groupby(['機組名稱'])['備件費用'].rank(ascending=False, method='dense')*0.2

df_data1['排名'] = df_data1.groupby(['機組名稱'])['排名'].rank(ascending=True, method='first')

df_result1 = analysis1(df_data1)#自定義函數返回關鍵部位

df_result2 = analysis2(df_data1)#自定義函數返回維修頻次

df_data2 = df_data2[['機組名稱', '制度班次時間(h)', '保養時間(h)', '設備總產量']]

df_data2['生產時間'] = df_data2['制度班次時間(h)'] - df_data2['保養時間(h)']

df_data2 = pd.pivot_table(df_data2, index=['機組名稱'], values=['生產時間'], aggfunc=[np.sum]).reset_index()

df_data2.columns = ['機組名稱', '生產時間']

df_result2 = pd.merge(df_result2, df_data2, on=['機組名稱'], how='left')

df_result2['維修周期1'] = (df_result2['生產時間'] / df_result2['維修頻次1']).round(0)

df_result2['維修周期2'] = (df_result2['生產時間'] / df_result2['維修頻次2']).round(0)

df_result2['維修周期3'] = (df_result2['生產時間'] / df_result2['維修頻次3']).round(0)

df_result_all = pd.merge(df_result1, df_result2, on=['機組名稱'], how='left')

2.6? 數據導出

利用Pandas中的to_excel方法將分析結果輸出為Excel文件,便于查看、分析與記錄。

writer = pd.ExcelWriter('維修周期分析結果.xlsx')

df_result_all.to_excel(writer, '維修周期分析結果', index= None)

writer.save()

3? 結? 論

對于多年維修實施、運維數據的分析,如果缺乏自動、高效的數據分析工具,難以解決數據量大、基礎數據不規范、計算過程復雜等難點。借助功能強大的Pandas工具,統計人員可以快速、準確地對Excel表格進行數據導入、清洗無效行、清洗無效列、數據透視、數據合并重塑、排序與排名、分組運算等操作。除了Pandas工具自帶的統計分析函數,用戶也可以方便地自定義函數,實現個性化的分析功能,極大地拓展了Pandas的分析能力,有效地提高了分析效率。

參考文獻:

[1] 馬孝宗.基于Pandas定位信息系統中的異常數據 [J].電腦編程技巧與維護,2019(12):95-96+108.

[2] 張若愚.Python科學計算 [M].北京:清華大學出版社,2012:469-471.

[3] 韋斯·麥金尼.利用Python進行數據分析:第2版 [M].徐敬一,譯.北京:機械工業出版社,2018:10-11.

[4] 托比·西格蘭.集體智慧編程 [M].莫映,王開福,譯.北京:電子工業出版社,2009:156-157.

作者簡介:馬孝宗(1989—),男,漢族,河南駐馬店人,信息管理員,碩士,研究方向:數據分析、機器視覺。

猜你喜歡
數據分析
電子物證檢驗的數據分析與信息應用研究
基于matlab曲線擬合的數據預測分析
商情(2016年40期)2016-11-28 11:28:07
分眾媒體趨勢下場景營銷的商業前景
商(2016年32期)2016-11-24 17:39:41
佛山某給水管線控制測量探討
科技資訊(2016年18期)2016-11-15 18:05:53
SPSS在環境地球化學中的應用
考試周刊(2016年84期)2016-11-11 23:57:34
大數據時代高校數據管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
我校如何利用體育大課間活動解決男生引體向上這個薄弱環節
體育時空(2016年8期)2016-10-25 18:02:39
Excel電子表格在財務日常工作中的應用
淺析大數據時代背景下的市場營銷策略
新常態下集團公司內部審計工作研究
中國市場(2016年36期)2016-10-19 04:31:23
主站蜘蛛池模板: 高清无码不卡视频| 国产第一页亚洲| 国产嫖妓91东北老熟女久久一| 一级成人欧美一区在线观看| 2021亚洲精品不卡a| 亚洲日韩精品无码专区| 亚洲精品不卡午夜精品| 国产三级视频网站| 日韩在线第三页| 久热re国产手机在线观看| 国产91小视频在线观看| 国产一区二区精品福利| 宅男噜噜噜66国产在线观看| 欧美日韩在线观看一区二区三区| 亚洲综合婷婷激情| 在线精品视频成人网| 久久美女精品国产精品亚洲| 亚洲大学生视频在线播放| 在线国产毛片| 国产精品性| 欧美精品三级在线| 国产91透明丝袜美腿在线| 欧美国产日韩另类| 欧美第一页在线| 草逼视频国产| 青青青伊人色综合久久| 国产无码制服丝袜| a级毛片在线免费观看| 亚洲精品综合一二三区在线| 朝桐光一区二区| 欧美.成人.综合在线| 久久这里只有精品2| 国产尹人香蕉综合在线电影| 亚洲成人网在线播放| 综合色88| 成人亚洲天堂| 小说区 亚洲 自拍 另类| 国产性精品| 伊人狠狠丁香婷婷综合色| 免费又爽又刺激高潮网址| 热热久久狠狠偷偷色男同| 天堂在线视频精品| 91在线精品麻豆欧美在线| 超碰精品无码一区二区| 亚洲v日韩v欧美在线观看| 中文字幕在线一区二区在线| 欧美国产日韩另类| 六月婷婷激情综合| 四虎亚洲国产成人久久精品| www.亚洲国产| 国产成年无码AⅤ片在线| 亚洲一区二区视频在线观看| 四虎永久免费在线| 91精品福利自产拍在线观看| 亚洲免费福利视频| 青青操视频在线| 国产精品视频观看裸模 | 97超碰精品成人国产| 精品久久久久久成人AV| 国产剧情一区二区| 色妞www精品视频一级下载| 国产乱人伦偷精品视频AAA| 亚洲第一区在线| 久久久久免费看成人影片 | 精品视频一区在线观看| 免费看黄片一区二区三区| 国产精品jizz在线观看软件| 国产九九精品视频| 亚洲第一区欧美国产综合| 2020国产在线视精品在| 亚洲成a∧人片在线观看无码| 欧洲欧美人成免费全部视频| 欧美一级片在线| 园内精品自拍视频在线播放| 99青青青精品视频在线| 91久久偷偷做嫩草影院免费看| 免费国产一级 片内射老| 99人体免费视频| 久久综合激情网| 又黄又爽视频好爽视频| 黄色污网站在线观看| 日本在线亚洲|