You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pandas实现按QuantityFormula匹配列头生成Quantity列的方法

解决方案

方法1:使用Pandas内置lookup(高效推荐)

Pandas的lookup方法可以直接根据行索引和列名数组提取对应单元格的值,完美适配需求且性能更优:

# 直接生成Quantity列
Merged['Quantity'] = Merged.lookup(Merged.index, Merged['QuantityFormula'])
  • 自动匹配每行QuantityFormula对应的列名,提取对应数值;
  • 支持新增行:只要新增行的QuantityFormula值是数据表中存在的列名,就能自动提取数值;
  • 未来填充NaN列的数值后,会自动取到最新值。

如果需要处理列名不存在的异常情况,可添加判断:

valid_cols = Merged.columns
Merged['Quantity'] = Merged.apply(
    lambda row: row[row['QuantityFormula']] if row['QuantityFormula'] in valid_cols else None,
    axis=1
)

方法2:修改现有XLOOKUP函数适配需求

如果要基于你现有的XLOOKUP逻辑调整,可以修改为针对单行列名的查找:

def xlookup_col(row, col_name_col, if_not_found=None):
    lookup_value = row[col_name_col]
    if lookup_value in row.index:
        return row[lookup_value]
    else:
        return if_not_found

# 应用到每行生成Quantity列
Merged['Quantity'] = Merged.apply(xlookup_col, axis=1, args=('QuantityFormula', None))
  • 逐行检查QuantityFormula的值是否为有效列名,有效则返回对应数值,否则返回None(可自定义返回值);
  • 同样支持新增行和未来的列值填充。

内容的提问来源于stack exchange,提问作者Jimmy3421

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:10:32