如何用向量化方法(无for循环)分析Pandas故障维修数据
设备故障与维修关联分析需求
原始数据
以下是记录设备故障与维修情况的Pandas DataFrame:
import pandas as pd id = ['A','A','A','A','A','B','B','B'] workcycle = [0,4,5,100,140,0,5,20] date = ['2022-01-01','2022-01-01','2022-01-02','2022-02-04','2022-03-10','2022-01-01','2022-01-02','2022-02-04'] failure_type=['A','B',None,'B',None,'A',None,None] repair_type=[None,None,'Repair_Type_1',None,'Repair_Type_2',None,'Repair_Type_1','Repair_Type_2'] event=['failure','failure','Repair','failure','Repair','failure','Repair','Repair'] df = pd.DataFrame({ 'id': id, 'workcycle': workcycle, 'date': date, 'failure_type': failure_type, 'repair_type': repair_type, 'event': event })
分析目标
基于*workcycle(工作周期)*维度,确定维修活动对故障的主要贡献关系。
判定规则
- 故障发生在维修前30个workcycle内
- 维修后30个workcycle内未出现同类型故障
- 同时满足以上两点时,认定该维修是对应故障的主要解决措施(示例:ID为A、workcycle为5的维修是ID为A、workcycle为0的故障的主要解决措施)
限制条件
若某故障后存在两次及以上维修,且其中任意两次维修的workcycle差值小于30,则不对该故障进行关联判定。
实现要求
需使用np.where、loc等向量化方法实现,避免使用过多for循环。
内容的提问来源于stack exchange,提问作者stat_man
相关产品推荐
相关产品推荐

