1234567891011121314151617181920212223242526272829303132 |
- import pandas as pd
- import datacompy
- class DiagDataMerge():
- def DetaMerge(df_Diag_Ram_sn,df_Diag_Batdiag_update_xq,df_Diag_Batdiag_update,df_OprtnSta,df_Diag_Ram_sn_else):
- df_Diag_Ram_add = pd.DataFrame()
- df_Diag_Ram_Update_change = pd.DataFrame()
- df_Diag_Cal_Update_add = pd.concat([df_Diag_Batdiag_update_xq,df_Diag_Batdiag_update])#重新计算的该SN下的故障
- df_Diag_Cal_Update = df_Diag_Cal_Update_add.drop_duplicates(subset=['product_id','start_time','end_time','code','info'], keep='first', inplace=False, ignore_index=False)#去除相同故障
- df_Diag_Cal_finish = pd.DataFrame(columns=['start_time', 'end_time', 'product_id', 'code', 'level', 'info','advice','Batpos'])
- df_Diag_Cal_unfinish = pd.DataFrame(columns=['start_time', 'end_time', 'product_id', 'code', 'level', 'info','advice','Batpos'])
- if not df_Diag_Cal_Update.empty:
- #------------------------------合并两者故障,并将同一sn号下的车辆故障放一起----------------------------------------------
- df_Diag_Cal_finish = df_Diag_Cal_Update[df_Diag_Cal_Update['end_time'] != '0000-00-00 00:00:00']
- df_Diag_Cal_unfinish = df_Diag_Cal_Update[df_Diag_Cal_Update['end_time'] == '0000-00-00 00:00:00']
- df_Diag_Cal_finish['Batpos'] = 1
- if len(df_OprtnSta):
- print(df_OprtnSta)
- if df_OprtnSta.loc[0,'status'] !=1:#0禁用 1正常 2故障 3返修 4 损毁 5丢失已赔偿,6丢失未赔偿
- df_Diag_Cal_unfinish['Batpos'] = 1
- else:
- df_Diag_Cal_unfinish['Batpos'] = 0
-
-
- df_Diag_Ram_add = pd.concat([df_Diag_Cal_Update,df_Diag_Ram_sn,df_Diag_Ram_sn]).drop_duplicates(subset=['start_time','code'],keep=False)#此次判断中新增故障
- df_Diag_Ram_Update_old = pd.concat([df_Diag_Cal_Update,df_Diag_Ram_add,df_Diag_Ram_add]).drop_duplicates(subset=['start_time','code'],keep=False)#此次判断中新增故障
- df_Diag_Ram_Update_change = pd.concat([df_Diag_Ram_Update_old,df_Diag_Ram_sn,df_Diag_Ram_sn]).drop_duplicates(subset=['start_time','code','Batpos'],keep=False)#此次判断中新增故障
- df_Diag_Ram = pd.concat([df_Diag_Ram_sn_else,df_Diag_Cal_unfinish])
-
-
- return df_Diag_Ram,df_Diag_Ram_add,df_Diag_Ram_Update_change
|