使用健康檔案資料計算OLT的使用者光衰不合格率

2021-09-27 11:53:14 字數 3603 閱讀 8594

import pandas as pd

import numpy as np

def read_unqualified_light_decay_excel(excel_name):

data=pd.read_excel(excel_name,skiprows=[0,1,2],header=none)

colname=['本地網','區縣','運營分局','運營包區','營銷中心','營銷分局','營銷網格','營銷包區','營銷單元','營銷小區',

'綜調分公司','綜調**商','綜調班組','綜調包區','綜調裝維','綜調裝維**',

'端到端ip','智慧型網管ip','olt名稱','olt編碼','olt位址','olt下行埠編碼','olt下行埠名稱','olt下行埠網管標誌','olt局向資訊',

'一分編碼','一分名稱','一分網管標誌','一分位址','一分上行埠編碼','一分下行埠編碼','一分下行埠名稱','一分下行埠網管標誌',

'一分光網路箱型別','一分光網路箱編碼','一分光網路箱名稱','一分光網路箱位址',

'二分編碼','二分名稱','二分網管標誌','二分位址','二分上行埠編碼','二分下行埠編碼','二分下行埠名稱','二分下行埠網管標誌',

'二分光網路箱型別','二分光網路箱編碼','二分光網路箱名稱','二分光網路箱位址',

'閘道器','廠商','終端型號','寬頻接入號','寬頻賬號','olt接收功率','olt傳送功率','onu接收功率','onu傳送功率','上行光衰','下行光衰',

'olt發光最小','olt發光最大','olt發光平均','光貓收光最小','光貓收光最大','光貓收光平均',

'上行光衰最小','上行光衰最大','上行光衰平均','下行光衰最小','下行光衰最大','下行光衰平均','收斂狀態','掛測型別','掛測時間',

'olt傳送功率','olt接收功率','光貓傳送功率','光貓接收功率','上行光衰','下行光衰','分光器到olt距離','是否達標','最新是否掛測成功',

'使用者星級','沙盤政企型別','是否高頻寬','城市農村標','使用者位址','採集狀態','採集時間','光貓狀態','光衰是否合格',

'是否4星級及以上使用者標識','當月最新光衰日期','當月最新光衰值','當月最新合格光衰日期','當月最新合格光衰值']

data.columns=colname

return data

def read_qualified_light_decay_excel(excel_name_list):

data=pd.dataframe()

for excel_name in excel_name_list:

temp=pd.read_excel(excel_name,sheet_name=none,skiprows=[0,1,2],header=none)

data_temp=pd.dataframe()

for each in temp.values():

colname=['本地網','區縣','運營分局','運營包區','營銷中心','營銷分局','營銷網格','營銷包區','營銷單元','營銷小區',

'綜調分公司','綜調**商','綜調班組','綜調包區','綜調裝維','綜調裝維**',

'端到端ip','智慧型網管ip','olt名稱','olt編碼','olt位址','olt下行埠編碼','olt下行埠名稱','olt下行埠網管標誌','olt局向資訊',

'一分編碼','一分名稱','一分網管標誌','一分位址','一分上行埠編碼','一分下行埠編碼','一分下行埠名稱','一分下行埠網管標誌',

'一分光網路箱型別','一分光網路箱編碼','一分光網路箱名稱','一分光網路箱位址',

'二分編碼','二分名稱','二分網管標誌','二分位址','二分上行埠編碼','二分下行埠編碼','二分下行埠名稱','二分下行埠網管標誌',

'二分光網路箱型別','二分光網路箱編碼','二分光網路箱名稱','二分光網路箱位址',

'閘道器','廠商','終端型號','寬頻接入號','寬頻賬號','olt接收功率','olt傳送功率','onu接收功率','onu傳送功率','上行光衰','下行光衰',

'olt發光最小','olt發光最大','olt發光平均','光貓收光最小','光貓收光最大','光貓收光平均',

'上行光衰最小','上行光衰最大','上行光衰平均','下行光衰最小','下行光衰最大','下行光衰平均','收斂狀態','掛測型別','掛測時間',

'olt傳送功率','olt接收功率','光貓傳送功率','光貓接收功率','上行光衰','下行光衰','分光器到olt距離','是否達標','最新是否掛測成功',

'使用者星級','沙盤政企型別','是否高頻寬','城市農村標','使用者位址','採集狀態','採集時間','光貓狀態','光衰是否合格',

'是否4星級及以上使用者標識','當月最新光衰日期','當月最新光衰值','當月最新合格光衰日期','當月最新合格光衰值']

data.columns=colname

return data

def unqualified_rate_by_olt(unqualified_data,qualified_data):

unqualified_users_olt=pd.dataframe(unqualified_data['端到端ip'].value_counts()).reset_index().rename(columns=)

qualified_users_olt=pd.dataframe(qualified_data['端到端ip'].value_counts()).reset_index().rename(columns=)

users_olt=pd.merge(unqualified_users_olt,qualified_users_olt,on=['端到端ip'],how='left')

users_olt['總使用者數']=users_olt['不合格使用者數']+users_olt['合格使用者數']

users_olt['不合格率']=users_olt['不合格使用者數']/users_olt['總使用者數']

users_olt.sort_values('不合格率',ascending=false,inplace=true)

return users_olt

unqualified_data=read_unqualified_light_decay_excel('使用者光衰達標明細20190927210916234.xlsx')

qualified_data=read_qualified_light_decay_excel(['使用者光衰達標明細20190927210930470_2_1.xlsx','使用者光衰達標明細20190927210930470_2_2.xlsx'])

unqualified_rate_by_olt=unqualified_rate_by_olt(unqualified_data,qualified_data)

unqualified_rate_by_olt.to_excel('使用者光衰不合格率(按olt).xlsx',index=false)

使用matlab讀入檔案資料

clear data fname bag 1.pkg 這裡是檔名 jump distance 0 這裡是跳過的位元組數 開啟方式為二進位制開啟,其實 r 就行,matlab是預設二進位制形式開啟檔案的 file id fopen data fname,rb 從檔案開始跳過jump distance個...

使用mysql儲存檔案資料

1 blob型別介紹 2 blob型別系列 mysql中,blob是個型別系列,共包括四種blob型別 tinyblob blob mediumblob longblob,這幾個型別之間的唯一區別是在儲存檔案的最大尺寸不同。字段型別 最大長度 位元組 儲存需求 tinyblob 255 值的長度加上...

使用C語言讀取bmp檔案資料

2014 9 24 02 23 讀取bmp資訊.cpp author 王炳華 執行此檔案,在同目錄下存放乙個名為dog.bmp的,格式必須為bmp include include define bmptype 19778 bool isbmp file f int multiply 2 int i ...