中國聯通河南省分公司 師雪麗 欣 娜 魏利朋 孫慧珠
根據集團公司下發的《關于補充維護5G資源相關數據的通知》,要求各省分公司基于自動采集的5G無線網數據,在OSS2.0資源管理系統補充維護管理區域、關聯機房或放置點等靜態數據。由于在篩選統計的過程中,需要處理的數據量龐大,與利用Excel相比較,利用Python能夠用更少的時間處理更大的數據集,實現自動化。本文通過對Python的Numpy及Pandas兩個庫的學習及應用,實現了無線網5G設備的自動化篩選統計,大大提高了工作效率。
本文使用Anaconda自帶的Jupyter Notebook,基于Python的Numpy及Pandas兩個庫,對從OSS2.0資源管理系統提取的四張5G(GnodeB、CU、DU、AAU)資源數據表進行篩選及統計,實現了5G設備的自動化篩選統計。
本文實驗主機為Windows 10系統,安裝了Python 3.8.1及Anaconda3軟件,在DOS環境下安裝了Jupyter Notebook、Numpy、Pandas包。

(1)從OSS2.0資源管理系統提取GnodeB、CU、DU、AAU數據原始表,并將四張表格由“xls”格式轉成“xlsx”格式,表格分別命名為:“GN.xlsx”、“CU.xlsx”、“DU.xlsx”、“AAU.xlsx”;
(2)將GnodeB、CU、DU、AAU數據原始表放到“當前工作目錄”下;
(3)新建一個“空表.xlsx”,表里內容為一列,列名為“所屬地市”,列的內容為地市名稱(地市名稱的排列順序可根據需求自己定義和調整)。
分別對“GN.xlsx”、“CU.xlsx”、“DU.xlsx”、“AAU.xlsx”四張原始數據表進行篩選統計,并導出對應的“**篩選明細表.xlsx”及“**匯總表.xlsx”。
(1)GnodeB數據表“GN.xlsx”篩選統計步驟

2)讀取表“GN.xlsx”表的內容;

3)篩選出“設備ID”、“設備名稱”、“設備編碼”、“所屬管理區域”四列數據;
df1 = df[[‘設備ID’,’設備名稱’,’設備編碼’,’所屬管理區域’]]
4)再次篩選出“所屬管理區域”為“空值”的數據,并將索引重置;

5)對每一行的“設備名稱”列中的值進行切片,取前兩個字母,賦值給對應行的“所屬管理區域”列;

6)將“所屬管理區域”列中值的字母替換成相應的漢字;
df4 = df3[‘所屬管理區域’].replace([‘DS1’,’DS2’],[ ‘地市1’,’地市2’])
7)按照“所屬管理區域”中的地市值對GnodeB未關聯設備數量進行匯總;

(2)AAU數據表“AAU.xlsx”篩選統計步驟
1)導入Numpy及Pandas庫,并將Numpy及Pandas簡稱為np和pd;
2)讀取表“AAU.xlsx”中兩個sheet的內容;

4)篩選出“設備ID”、“設備編碼”,“所屬GNodeBDU”,“所屬安置地點”四列數據;
5)再次篩選出“所屬安置地點”為“空值”的數據,并將索引重置;
6)定義一個函數city(),通過“設備編碼”的7位5G NODEBID值判斷所屬地市;

7)對每一行的“設備編碼”列中的值進行切片,取有效的7位5G NODEBID的值,調用函數city()后,賦值給“所屬安置地點”列;

8)按照“所屬安置地點”中的地市值對AAU未關聯設備數量進行匯總;
9)生成“AAU篩選明細表.xlsx”及“AAU匯總表”;(3)“CU.xlsx”、“DU.xlsx”表的篩選統計步驟參照(1)中“GN.xlsx”篩選統計步驟。
生成“5G未關聯設備統計匯總表.xlsx”表的步驟:
(1)導入Numpy及Pandas庫,并將Numpy及Pandas簡稱為np和pd;
(2)讀取四張篩選明細表、四張匯總表以及18地市“空表”內容;
(3)重命名四張匯總表的列名;
(4)以“空表”為參照,將四張匯總表與“空表”拼接成一個匯總表;
(5)將總的匯總表“空值”置零,并將設備(GN、CU、DU、AAU)數量列的數值類型轉換成“int”類型;
(6)將總匯總表每行進行求和后生成“總數”列,然后對“總數”列按照降序排列;
(7)將四張篩選明細表及步驟(6)生成的總匯總表保存到一個名為“5G未關聯設備統計匯總表.xlsx”的Excel表里,表中包括5個sheet,sheet名分別為:“GN”、“CU”、“DU”、“AAU”、“匯總”。
最終生成的“5G未關聯設備統計匯總表.xlsx”表格中GN及匯總兩個sheet的內容如圖1、圖2所示,由于CU、DU及AAU三個sheet的內容與GN內容相似,本文就不再展示了。

圖1 GN表內容

圖2 匯總表內容
本文實驗的一個關鍵步驟是設備“所屬地市”的判斷,通過觀察,GnodeB、CU、DU、AAU設備均可以通過“設備名稱(所屬GNodeBDU)”的前兩個字母或“設備編碼”的7位5G NODEBID值來判斷“所屬地市”。因此判斷“所屬地市”的方法就有多種組合。在實驗過程中,我發現“設備編碼”的7位5G NODEBID的位置不固定,而“設備名稱”、“所屬GNodeBDU”這列的前兩個字母位置是固定的。因此,實驗初期,我采用“設備名稱(所屬GNodeBDU)”的前兩個字母判斷“所屬地市”。但是在多次實驗中,我發現“AAU.xlsx”數據表中“所屬GNodeBDU”列的值經常會有缺失,經過綜合考量,最終,確定采用本文:GnodeB、CU、DU設備按照“設備名稱”,AAU設備按照“設備編碼”判斷“所屬地市”的方法。
通過對比,在進行5G設備篩選統計工作中,處理相同的4張Excel表的數據,利用傳統的Excel篩選統計方法,需要耗費至少40min的時間,而利用本文的python處理方法,只需要耗費不到4分鐘的時間,大大節省了數據處理時間,提高了工作效率,本文的方法已在實際工作中得到應用。