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

Python Pandas逐行按多条件匹配值提取对应列名求助

Pandas多条件逐行提取匹配列名解决方案

你可以通过行方向apply调用自定义判断函数实现需求,完整实现代码如下:

首先导入依赖并构造示例数据:

import pandas as pd
# 构造示例数据
data = {'Name': ['Tom', 'Joseph', 'Krish', 'John'], 'acne': [1, 4, 1, 2], 'wrinkles': [1, 3, 4, 4],'darkspot': [2, 2, 3, 4] }  
df1 = pd.DataFrame(data)

然后编写行处理函数并执行计算:

# 定义逐行判断逻辑
def get_problem_cols(row):
    # 排除Name列,只判断数值列
    num_cols = row.index.drop('Name')
    # 优先匹配值为3/4的列
    priority_cols = [col for col in num_cols if row[col] in (3,4)]
    if priority_cols:
        return priority_cols
    # 没有匹配则返回值为2的列
    return [col for col in num_cols if row[col] == 2]

# 行方向应用函数生成新列
df1['problem'] = df1.apply(get_problem_cols, axis=1)

执行后df1的输出结果和你预期的df2完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:39:03