手上有一份数据,因参数是不定期的动态更新,所以参数表不能写在代码中,需要一个外置的参数表进行存储。
如下图:
原始数据中有ABC三个零件,需要判断参数1,参数2 的合格情况。
可以外置数据库管理、json文件、xlsx文件、py文件进行存储,也方便添加,根据习惯,这里使用json文件进行保存,代码上主要是读取数据时的处理。
附:json格式参数表,需要注意的是参数表信息中参数均需要带双引号,防止json解析时出错。
import pandas as pd
import json
def parameters(path):
with open(path, "r", encoding="utf8") as t:
parameters = t.read()
parameters = json.loads(parameters)
return parameters
def judge(parameters, part, p):
try:
if p >= float(parameters[part]["参数1"]):
return "合格"
else:
return "不合格"
except:
print(f"参数表无零件{part}参数或数据格式有问题")
return "无参数无法判断"
path = "参数表.json"
parameters = parameters(path)
df = pd.read_excel("原始数据.xlsx", index_col="序号")
df["参数1判断结果"] = df.apply(lambda x: judge(parameters, x["零件"], x["参数1"]), axis=1)
df["参数2判断结果"] = df.apply(lambda x: judge(parameters, x["零件"], x["参数2"]), axis=1)
df["判断结果"] = df.apply(
lambda x: "合格" if x["参数1判断结果"] == "合格" and x["参数2判断结果"] == "合格" else "不合格", axis=1
)
df.to_excel("判断后文件.xlsx")