繁体   English   中英

我试图从可靠性库中将值传递给 function 但没有太大成功。 这是我的示例数据和代码

[英]I am trying to pass values to a function from the reliability library but without much success. here is my sample data and code

我的样本数据如下

Tag_Typ Alpha_Estimate Beta_Estimate PM01_Avg_Cost PM02_Avg_Cost
OLK-AC-101-14A_PM01 497.665 0.946584 1105.635 462.3833775
OLK-AC-103-01_PM01 288.672 0.882831 1303.8875 478.744375
OLK-AC-1105-01_PM01 164.282 0.787158 763.4475758 512.185814
OLK-AC-236-05A_PM01 567.279 0.756839 640.718 450.3277778
OLK-AC-276-05A_PM01 467.53 0.894773 1536.78625 439.78

这是我的示例代码

import pandas as pd
import numpy as np
from reliability.Repairable_systems import optimal_replacement_time
import matplotlib.pyplot as plt
data = pd.read_excel (r'C:\Users\\EU_1_EQ_PM01_Cost.xlsx')
data_frame = pd.DataFrame(data, columns= ['Alpha_Estimate','Beta_Estimate','PM01_Avg_Cost','PM02_Avg_Cost'])

Alpha_Est=pd.DataFrame(data, columns= ['Alpha_Estimate'])
Beta_Est=pd.DataFrame(data, columns= ['Beta_Estimate'])
PM_Est=pd.DataFrame(data, columns= ['PM02_Avg_Cost'])
CM_Est=pd.DataFrame(data, columns= ['PM01_Avg_Cost'])
optimal_replacement_time(cost_PM=PM_Est, cost_CM=CM_Est, weibull_alpha=Alpha_Est, weibull_beta=Beta_Est,q=0)
plt.show()

我需要遍历为每个标签设置的值并将这些值传递给 Optimal replacement function 以返回结果。

[示例输出] ValueError:只能比较具有相同标签的 DataFrame 对象

当我遍历标签类型并打印每个标签的结果时,我将不胜感激有关如何在 function 中传递 PM 成本、PPM 成本以及分布参数 alpha 和 beta 的值的任何建议。 谢谢。

您问题的核心是如何遍历 Python 中的列表。 这将实现您所追求的:

import pandas as pd
from reliability.Repairable_systems import optimal_replacement_time

df = pd.read_excel(io=r"C:\Users\Matthew Reid\Desktop\sample_data.xlsx")
alpha = df["Alpha_Estimate"].tolist()
beta = df["Beta_Estimate"].tolist()
CM = df["PM01_Avg_Cost"].tolist()
PM = df["PM02_Avg_Cost"].tolist()

ORT = []
for i in range(len(alpha)):
    ort = optimal_replacement_time(cost_PM=PM[i], cost_CM=CM[i], weibull_alpha=alpha[i], weibull_beta=beta[i],q=0)
    ORT.append(ort.ORT)

print('List of the optimal replacement times:\n',ORT)

另外,您所有的 beta 值都小于 1。这意味着风险率正在下降(也就是婴儿死亡率/早期生命失败)。 当您运行上述脚本时,每次迭代都会打印警告:

"WARNING: weibull_beta is < 1 so the hazard rate is decreasing, therefore preventative maintenance should not be conducted."

如果您有任何其他问题,您知道如何与我联系:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM