You need to enable JavaScript to run this app. Pandas数据框中按列值最大条件提取对应列名后缀数字的方法
优惠活动
大模型
产品
解决方案
定价
更多

Pandas数据框中按列值最大条件提取对应列名后缀数字的方法

基于Pandas的实现方案

针对需要从固定格式的编码列中,提取最大取值对应后缀数字的需求,可按照如下步骤实现,无需手动逐列比对:

  • 自动识别所有目标列,避免硬编码列名带来的维护成本:
# 匹配所有以`encoded_feature.size_cd_`为前缀的列
target_cols = [col for col in df.columns if col.startswith("encoded_feature.size_cd_")]
  • 逐行计算目标列集合内的最大值对应列名,利用pandas内置的idxmax方法直接定位:
# axis=1表示按行方向查找最大值对应的列
max_col_per_row = df[target_cols].idxmax(axis=1)
  • 从列名中提取固定格式的后缀数字:
    适配单数字后缀的基础提取逻辑:
    # 按字符串分割规则,取列名最后一段的数字作为结果
    result = max_col_per_row.str.split("_").str[-1]
    
    如果后续列后缀会扩展为多位数(比如encoded_feature.size_cd_10这类值),推荐用固定前缀切片的方式提取,兼容性更强:
    # 预先定义固定列前缀
    col_prefix = "encoded_feature.size_cd_"
    # 截取列名中前缀之后的所有内容,即可得到后缀数字
    result = max_col_per_row.str[len(col_prefix):]
    

针对你提供的单行样例数据,上述代码执行后result的结果值为0,完全匹配预期输出。

  • 若遇到多列取值并列最大的场景,idxmax默认返回列名顺序中排在最靠前的列对应的后缀,如果需要自定义并列场景的取值规则,可以在筛选目标列时提前调整列的排列顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 15:06:03