def decide_from_row(tree, columns, row):
time = Time(
t=row.name.value // 10 ** 9, # Timestamp.value returns nanoseconds
timezone=row.name.tz
)
context = {
col: row[col] for col in columns if pd.notnull(row[col])
}
try:
decision = VanillaInterpreter.decide(tree, [context, time])
keys, values = zip(*[
(output + "_" + key, value)
for output, output_decision in decision["output"].items()
for key, value in output_decision.items()
])
return pd.Series(data=values, index=keys)
except CraftAiNullDecisionError as e:
return pd.Series(data=[e.message], index=["error"])
评论列表
文章目录