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

如何用简洁语法获取DataFrame中A/B列的可用值(避免KeyError)

解决方法
  • 利用集合交集快速定位存在的列
    因为DataFrame仅包含A或B列,通过集合交集能直接拿到存在的列名,再取值:

    # 一行简洁写法
    Value = df.at['Total', next(iter({'A', 'B'} & df.columns))]
    

    逻辑:{'A', 'B'} & df.columns会返回仅包含存在列的集合,next(iter(...))直接取出这个唯一元素,完全不用分支判断。

  • 用DataFrame的get方法简化取值
    借助df.get()的默认值特性,当目标列不存在时自动返回备选列,再提取对应行的值:

    Value = df.get('A', df['B']).at['Total']
    

    逻辑:如果列'A'存在,df.get('A')返回'A'列;不存在则返回df['B'](题目保证此时B一定存在),最后通过.at['Total']拿到目标值。

  • try-except捕获异常(紧凑版)
    虽然不是一行表达式,但可以写成紧凑形式,适合偏好异常捕获的场景:

    try: Value = df.at['Total','A']
    except KeyError: Value = df.at['Total','B']
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:42:36