孫偉 李忠良 張麗華
摘 要:本文主要通過(guò)先進(jìn)的人工智能python語(yǔ)言,在Visual Studio code集中開(kāi)發(fā)環(huán)境下,實(shí)現(xiàn)基站故障的自動(dòng)統(tǒng)計(jì)分析輸出,大幅提升日常故障分析處理的效率和準(zhǔn)確率,壓縮故障處理時(shí)限,助力移動(dòng)網(wǎng)NPS提升。
關(guān)鍵詞:基站故障;超長(zhǎng)斷站;超頻斷站;超短斷站;超量斷站
中圖分類(lèi)號(hào):G642
一 概述
本項(xiàng)目利用Python語(yǔ)言簡(jiǎn)潔、模塊化以及擁有豐富的資源庫(kù)的特點(diǎn),基于Visual Studio Code集成開(kāi)發(fā)環(huán)境,快速實(shí)現(xiàn)基站故障原因統(tǒng)計(jì)匯總、超長(zhǎng)斷站、超頻斷站、超短斷站的自動(dòng)輸出展示。
二 基站故障大數(shù)據(jù)研究及分析
1導(dǎo)入庫(kù)及函數(shù)模板
利用Python的大數(shù)據(jù)處理功能主要使用了pandas和numpy兩個(gè)標(biāo)準(zhǔn)庫(kù)。導(dǎo)入庫(kù)及函數(shù)模板后,讀取桌面上的alarms斷站excel表格,準(zhǔn)備進(jìn)行數(shù)據(jù)處理。
#導(dǎo)入各種庫(kù)以及函數(shù)模板
import pandas as pd
import numpy as np
from pandas import DataFrame
from pandas import Series
from pandas import to_datetime
#導(dǎo)入具體的文件
data = pd.read_excel(r'C:\Users\Lenovo\Desktop\alarms斷站.xls')
df_0 = pd.DataFrame(data)
df_0['故障原因'].fillna('其他')
2 四超斷站分析及設(shè)計(jì)
本文提到的四超斷站指的是超長(zhǎng)斷站、超短斷站、超頻斷站和超量斷站。
超長(zhǎng)斷站分析及設(shè)計(jì):按照故障關(guān)鍵項(xiàng)有效列順序,對(duì)“故障時(shí)長(zhǎng)”列進(jìn)行排序,自動(dòng)輸出時(shí)長(zhǎng)較長(zhǎng)的100個(gè)(或10個(gè))到一個(gè)新的excel表“超長(zhǎng)斷站”;同理,如果對(duì)“故障時(shí)長(zhǎng)”列進(jìn)行判斷,如果大于等于1分鐘,小于10分鐘,自動(dòng)輸出生成一個(gè)新的excel表”超短斷站”。
超頻斷站分析及設(shè)計(jì):按照上述有效列順序,對(duì)“網(wǎng)元名稱”列中基站名稱進(jìn)行統(tǒng)計(jì),得到斷站告警的次數(shù),把斷站次數(shù)大于等于5(大于10)的排好順序,自動(dòng)輸出一個(gè)新的excel表“超頻斷站”。(同理類(lèi)推,可以輸出頻次大于10的基站,頻次大于100的基站)
超量斷站分析及設(shè)計(jì):按照有效列順序,對(duì)“工單號(hào)”列進(jìn)行統(tǒng)計(jì),保留大于等于10次的工單;再對(duì)“故障原因”和“區(qū)縣”進(jìn)行統(tǒng)計(jì)判斷是否均大于等于10次,確定是否符合超量斷站的基本定義“同一時(shí)間內(nèi)因同一故障原因造成10個(gè)以上邏輯基站斷站”,符合條件的自動(dòng)輸出新的excel表格“超量斷站”。
以超頻斷站為例的Python代碼見(jiàn)下:
#超頻斷站
df_cpdz = df_0.loc[:,['地市','區(qū)縣','網(wǎng)元名稱','網(wǎng)管告警標(biāo)題','告警發(fā)生時(shí)間','告警清除時(shí)間','故障時(shí)長(zhǎng)']]
counts1 = df_cpdz[u'網(wǎng)元名稱'].value_counts()
counts = counts1[counts1>=5]
x =counts.index.values
cpdz = DataFrame(columns=['地市','區(qū)縣','網(wǎng)元名稱','網(wǎng)管告警標(biāo)題','告警發(fā)生時(shí)間','告警清除時(shí)間','故障時(shí)長(zhǎng)'])
for i in range(len(x)):
for j in range(len(df_cpdz)):
if df_cpdz.iat[j,2] == x[i]:
cpdz = cpdz.append(df_cpdz[j:j+1],ignore_index=True)
t = Series(index=cpdz['網(wǎng)元名稱'])
for i in t.index.values:
t[i] = counts[i]
t.index=range(len(t))
t=t.astype(int)
cpdz.insert(7,'斷站次數(shù)',t,allow_duplicates = True)
cpdz= cpdz.astype(str)
cpdz.to_excel(r'C:\Users\Lenovo\Desktop\超頻斷站.xls',index=None)
三 結(jié)語(yǔ)
利用Python語(yǔ)言強(qiáng)大的數(shù)據(jù)處理功能,成功實(shí)現(xiàn)了基站故障分析的各項(xiàng)基本功能,可以在1-2秒內(nèi)自動(dòng)輸出故障報(bào)表,并且在處理大量數(shù)據(jù)方面具有明顯優(yōu)勢(shì),不僅大大提高了工作效率,而且為下一步擴(kuò)大人工智能語(yǔ)言Python在移動(dòng)網(wǎng)基站規(guī)劃、建設(shè)、優(yōu)化及維護(hù)方面應(yīng)用提供了良好的實(shí)踐基礎(chǔ)。
參考文獻(xiàn):
[1]楊帆,丁曉劍,劉禹鋒,劉健.主體思維導(dǎo)向視角下的Python課程教學(xué)探索[J].計(jì)算機(jī)時(shí)代,2021(02):74-76+79.
[3] 瞿蘇.基于Python的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)[J].揚(yáng)州職業(yè)大學(xué)學(xué)報(bào).2019(01).
(中國(guó)聯(lián)通臨沂市分公司? ?山東? 臨沂? 276000)