Pandas多级索引列DataFrame按行条件应用自定义函数生成求值列方案
实现方案
你可以通过构建算子映射字典 + 行级自定义计算的方式实现需求,完整代码如下:
# 构建算子名称到实现函数的映射字典 op_map = dict(zip(names, operatorList)) # 定义单行计算逻辑 def evaluate_row(row): # 取当前行指定的算子名称 op_name = row["operator"].item() # 提取当前算子对应的所有非空入参 input_params = row["scalars", op_name].dropna().to_list() # 调用对应函数返回计算结果 return op_map[op_name](input_params) # 新增Evaluation列存储计算结果 df["Evaluation"] = df.apply(evaluate_row, axis=1)
逻辑说明
- 映射字典
op_map直接关联算子名和实现函数,不需要写多分支条件判断,后续新增算子只要同步更新names和operatorList即可,维护成本更低 - 提取入参时调用
dropna()自动过滤非当前算子的空值列,天然适配不同算子参数数量不同的场景 - 最终生成的
Evaluation列结果和你给出的预期示例完全匹配
内容的提问来源于stack exchange,提问作者DinosRoar
相关产品推荐
相关产品推荐

