• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Pandas進(jìn)行關(guān)鍵部位維修周期分析

      2020-08-17 09:24:23馬孝宗王雪山魏景春
      現(xiàn)代信息科技 2020年9期
      關(guān)鍵詞:關(guān)鍵部位數(shù)據(jù)分析

      馬孝宗 王雪山 魏景春

      摘? 要:以關(guān)鍵部位維修周期分析為例,詳細(xì)闡述了基于Pandas對(duì)Excel表格進(jìn)行數(shù)據(jù)導(dǎo)入、清洗無(wú)效行、清洗無(wú)效列、數(shù)據(jù)透視、數(shù)據(jù)合并重塑、排序與排名、分組運(yùn)算的實(shí)現(xiàn)過(guò)程。該方法解決了關(guān)鍵部位維修周期分析中的存在數(shù)據(jù)量大、基礎(chǔ)數(shù)據(jù)不規(guī)范、計(jì)算過(guò)程復(fù)雜等難點(diǎn),實(shí)現(xiàn)了關(guān)鍵部位維修周期分析的自動(dòng)化。該方法也適用于人事數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)的年度匯總,具有良好的實(shí)用性與推廣價(jià)值。

      關(guān)鍵詞:Pandas;運(yùn)維記錄;關(guān)鍵部位;數(shù)據(jù)分析

      中圖分類(lèi)號(hào):TP391? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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? 引? 言

      在先進(jìn)的卷煙工業(yè)中,一般采用裝備管理系統(tǒng)記錄設(shè)備維修、運(yùn)行數(shù)據(jù),裝備管理系統(tǒng)是集設(shè)備運(yùn)行維護(hù)、點(diǎn)檢管理、潤(rùn)滑管理、保養(yǎng)管理、維修管理、零備件申報(bào)與發(fā)放為一體的信息系統(tǒng),其提供的維修實(shí)施報(bào)表和運(yùn)維報(bào)表記錄了機(jī)組名稱(chēng)、維修部位、維修工時(shí)、備件費(fèi)用、設(shè)備總產(chǎn)量、制度時(shí)間、保養(yǎng)時(shí)間等信息。為了對(duì)關(guān)鍵部位進(jìn)行重點(diǎn)維保,需要摸清各機(jī)組的關(guān)鍵部位和對(duì)應(yīng)的維修周期,為此需要對(duì)多年的維修實(shí)施記錄、運(yùn)維記錄進(jìn)行統(tǒng)計(jì)分析,但該分析過(guò)程存在數(shù)據(jù)量大、基礎(chǔ)數(shù)據(jù)不規(guī)范、計(jì)算過(guò)程復(fù)雜等難點(diǎn),分析過(guò)程費(fèi)時(shí)費(fèi)力。

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

      1? 需求分析

      關(guān)鍵部位維修周期分析的數(shù)據(jù)來(lái)源包括維修實(shí)施記錄、運(yùn)維記錄兩個(gè)Excel文件。維修實(shí)施記錄包括機(jī)組名稱(chēng)、維修部位、維修工時(shí)、備件費(fèi)用等信息,運(yùn)維記錄包括機(jī)組名稱(chēng)、設(shè)備總產(chǎn)量、制度時(shí)間、保養(yǎng)時(shí)間等信息。關(guān)鍵部位維修周期分析結(jié)果分為兩個(gè)階段:第一個(gè)階段根據(jù)維修頻次、維修工時(shí)、備件費(fèi)用確定各機(jī)組的關(guān)鍵部位;第二個(gè)階段根據(jù)維修頻次、制度時(shí)間、保養(yǎng)時(shí)間確定各機(jī)組各關(guān)鍵部位的維修周期。

      在關(guān)鍵部位年度維修周期分析中存在以下難點(diǎn):一是數(shù)據(jù)量大,其數(shù)據(jù)來(lái)源于多年的維修實(shí)施記錄、運(yùn)維記錄;二是數(shù)據(jù)不規(guī)范,比如部分記錄的維修部位與機(jī)組名稱(chēng)不標(biāo)準(zhǔn)或設(shè)備總產(chǎn)量為零的無(wú)效記錄;三是標(biāo)題行位置不確定,維修實(shí)施記錄、運(yùn)維記錄自系統(tǒng)導(dǎo)出時(shí)有空行且標(biāo)題行位置不統(tǒng)一;四是關(guān)鍵部位的確定涉及維修頻次、維修工時(shí)、備件費(fèi)用三個(gè)因素,計(jì)算過(guò)程復(fù)雜;五是要將各機(jī)組關(guān)鍵部位、維修周期等分析結(jié)果匯至一處,便于查看與比對(duì)。

      2? 編程實(shí)現(xiàn)

      基于Pandas進(jìn)行關(guān)鍵部位維修周期分析,包括標(biāo)題行識(shí)別、數(shù)據(jù)導(dǎo)入、數(shù)據(jù)清洗、數(shù)據(jù)分析、數(shù)據(jù)導(dǎo)出五個(gè)步驟。

      2.1? 編程環(huán)境

      編程環(huán)境采用Windows下的Anaconda軟件,Anaconda包含了conda、Python在內(nèi)的大量科學(xué)包及其依賴(lài)項(xiàng),以及高效的Python開(kāi)發(fā)環(huán)境Spyder。具體開(kāi)發(fā)環(huán)境為:Windows 7/10操作系統(tǒng)、Anaconda3-5.3.0(64 bit)。

      2.2? 標(biāo)題行識(shí)別

      自裝備管理系統(tǒng)導(dǎo)出的維修實(shí)施記錄、運(yùn)維記錄中既有空行又有表頭,Pandas提供的skip_blank_lines方法可在導(dǎo)入Excel數(shù)據(jù)時(shí)跳過(guò)空行,卻無(wú)法跳過(guò)表頭,影響下一步數(shù)據(jù)處理。為此設(shè)計(jì)識(shí)別標(biāo)題行的自定義函數(shù),利用空行、表頭導(dǎo)入時(shí)產(chǎn)生大量“Unnamed”字符的特點(diǎn),判斷Excel標(biāo)題行所在位置并返回正確的數(shù)據(jù)幀。關(guān)鍵代碼如下:

      def check_excel(f):

      sign = 0#返回正確數(shù)據(jù)幀的標(biāo)志

      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:#如果標(biāo)題行Unnamed字符較少

      return df#返回該正確數(shù)據(jù)幀

      sign = 1

      else:

      pass

      2.3? 數(shù)據(jù)導(dǎo)入

      首先獲取當(dāng)前工作目錄下的所有文件名,判斷文件的后綴名是否是“.xlsx”或“.xls”并且文件名包含“維修實(shí)施”或“運(yùn)維”;接著創(chuàng)建一個(gè)標(biāo)準(zhǔn)的機(jī)組名稱(chēng)列表,便于下一步清洗數(shù)據(jù);最后將“維修實(shí)施記錄”和“運(yùn)維記錄”分別導(dǎo)入為Pandas的數(shù)據(jù)幀。根據(jù)自定義函數(shù)check_excel保證數(shù)據(jù)導(dǎo)入時(shí)標(biāo)題行位置正確。關(guān)鍵代碼如下:

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

      order_name = ['卷接' + str(i + 1) + '號(hào)' for i in range(7)] + ['包裝' + str(i + 1) + '號(hào)' for i in range(7)]#創(chuàng)建標(biāo)準(zhǔn)的機(jī)組名稱(chēng)

      l_f = []

      for f in files:

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

      l_f.insert(0,f)

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

      l_f.append(f)

      else:

      pass

      if len(sign_f==2):#維修實(shí)施表和運(yùn)維記錄表同時(shí)存在才導(dǎo)入數(shù)據(jù)

      df_data1 = check_excel(l_f[0])

      df_data2 = check_excel(l_f[1])

      else:

      os._exit(0)

      2.4? 數(shù)據(jù)清洗

      導(dǎo)入后的數(shù)據(jù)通常包含無(wú)效值、缺失值、重復(fù)值、錯(cuò)誤值等,通過(guò)數(shù)據(jù)清洗的過(guò)程過(guò)濾掉不符合要求的數(shù)據(jù)。Pandas中過(guò)濾數(shù)據(jù)的常見(jiàn)操作包括篩選、刪除、填充、替換等。維修實(shí)施表中需要清洗的數(shù)據(jù)包括三種:一是無(wú)效記錄;二是“機(jī)組名稱(chēng)”不標(biāo)準(zhǔn);三是“部位名稱(chēng)”不標(biāo)準(zhǔn)。運(yùn)維記錄表中需要清洗的數(shù)據(jù)包括兩種:一是無(wú)效記錄;二是“設(shè)備總產(chǎn)量”為0。通過(guò)篩選的方法清洗數(shù)據(jù),關(guān)鍵代碼如下:

      df_data1 = df_data1[['機(jī)組名稱(chēng)', '部位名稱(chēng)', '維修工時(shí)(分鐘)', '備件費(fèi)用']]

      df_data2 = df_data2[['機(jī)組名稱(chēng)', '制度班次時(shí)間(h)', '保養(yǎng)時(shí)間(h)', '設(shè)備總產(chǎn)量']]

      df_data1 = df_data1[((df_data1['機(jī)組名稱(chēng)'].isin(order_name))& (~df_data1['部位名稱(chēng)'].isin(order_name)& (df_data1 ['記錄狀態(tài)']=='已提交'))]]

      df_data2 = df_data2[((df_data2['記錄狀態(tài)']=='已提交') & (df_data2['設(shè)備總產(chǎn)量'] > 0))]

      2.5? 數(shù)據(jù)分析

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

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

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

      df_費(fèi)用 = pd.pivot_table(df_data1, index=['機(jī)組名稱(chēng)', '部位名稱(chēng)'], values=['備件費(fèi)用'],aggfunc=[np.sum]).reset_index()

      df_data1 = pd.merge(df_頻次, df_時(shí)間, on=['機(jī)組名稱(chēng)', '部位名稱(chēng)'], how='left')

      df_data1 = pd.merge(df_data1, df_費(fèi)用, on=['機(jī)組名稱(chēng)', '部位名稱(chēng)'], how='left')

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

      groupby(['機(jī)組名稱(chēng)'])['維修工時(shí)'].rank(ascending=False,method ='dense') * 0.4+df_data1.groupby(['機(jī)組名稱(chēng)'])['備件費(fèi)用'].rank(ascending=False, method='dense')*0.2

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

      df_result1 = analysis1(df_data1)#自定義函數(shù)返回關(guān)鍵部位

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

      df_data2 = df_data2[['機(jī)組名稱(chēng)', '制度班次時(shí)間(h)', '保養(yǎng)時(shí)間(h)', '設(shè)備總產(chǎn)量']]

      df_data2['生產(chǎn)時(shí)間'] = df_data2['制度班次時(shí)間(h)'] - df_data2['保養(yǎng)時(shí)間(h)']

      df_data2 = pd.pivot_table(df_data2, index=['機(jī)組名稱(chēng)'], values=['生產(chǎn)時(shí)間'], aggfunc=[np.sum]).reset_index()

      df_data2.columns = ['機(jī)組名稱(chēng)', '生產(chǎn)時(shí)間']

      df_result2 = pd.merge(df_result2, df_data2, on=['機(jī)組名稱(chēng)'], how='left')

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

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

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

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

      2.6? 數(shù)據(jù)導(dǎo)出

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

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

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

      writer.save()

      3? 結(jié)? 論

      對(duì)于多年維修實(shí)施、運(yùn)維數(shù)據(jù)的分析,如果缺乏自動(dòng)、高效的數(shù)據(jù)分析工具,難以解決數(shù)據(jù)量大、基礎(chǔ)數(shù)據(jù)不規(guī)范、計(jì)算過(guò)程復(fù)雜等難點(diǎn)。借助功能強(qiáng)大的Pandas工具,統(tǒng)計(jì)人員可以快速、準(zhǔn)確地對(duì)Excel表格進(jìn)行數(shù)據(jù)導(dǎo)入、清洗無(wú)效行、清洗無(wú)效列、數(shù)據(jù)透視、數(shù)據(jù)合并重塑、排序與排名、分組運(yùn)算等操作。除了Pandas工具自帶的統(tǒng)計(jì)分析函數(shù),用戶(hù)也可以方便地自定義函數(shù),實(shí)現(xiàn)個(gè)性化的分析功能,極大地拓展了Pandas的分析能力,有效地提高了分析效率。

      參考文獻(xiàn):

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

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

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

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

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

      猜你喜歡
      關(guān)鍵部位數(shù)據(jù)分析
      炫目視界
      VVER核電工程關(guān)鍵部位長(zhǎng)周期施工物項(xiàng)的焊接質(zhì)量控制經(jīng)驗(yàn)反饋
      公路工程施工環(huán)節(jié)關(guān)鍵部位施工技術(shù)研究
      淺談公路工程施工中關(guān)鍵部位的施工技術(shù)
      淺析建筑施工中關(guān)鍵和特殊部位施工技術(shù)
      我校如何利用體育大課間活動(dòng)解決男生引體向上這個(gè)薄弱環(huán)節(jié)
      Excel電子表格在財(cái)務(wù)日常工作中的應(yīng)用
      淺析大數(shù)據(jù)時(shí)代背景下的市場(chǎng)營(yíng)銷(xiāo)策略
      新常態(tài)下集團(tuán)公司內(nèi)部審計(jì)工作研究
      淺析大數(shù)據(jù)時(shí)代對(duì)企業(yè)營(yíng)銷(xiāo)模式的影響
      安徽省| 周至县| 宁远县| 郴州市| 玉门市| 鸡东县| 卢氏县| 股票| 芦溪县| 定边县| 湖南省| 呼和浩特市| 获嘉县| 南昌县| 梁平县| 淮阳县| 建瓯市| 阳城县| 聊城市| 长乐市| 清原| 龙川县| 双江| 德保县| 隆尧县| 蒙阴县| 巴中市| 扶风县| 葫芦岛市| 定安县| 麻城市| 都匀市| 维西| 田阳县| 芜湖市| 台中市| 怀来县| 益阳市| 沈丘县| 新建县| 屯门区|