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

基于Pandas根据指定条件生成新列result的实现方法

Pandas实现条件生成新列方案

针对你需要根据Runid和type两列的条件生成result列的需求,这里有几种实用的实现方式:

方法一:使用numpy.where(推荐,性能更优)

这种方法适合处理多条件判断,代码简洁且运行速度快,尤其是数据量较大时表现出色:

import pandas as pd
import numpy as np

# 假设你的数据集存储在名为df的DataFrame中
df['result'] = np.where(
    (df['Runid'] == 'R1') & (df['type'] == 1.5),
    'pass',
    np.where(
        (df['Runid'] == 'R2') & (df['type'] == 1),
        'fail',
        None  # 不符合上述两个条件时的默认值,可按需修改为''、'NA'等
    )
)

方法二:使用DataFrame.loc赋值(逻辑更直观)

这种方式分步设置条件,可读性强,后续要添加更多规则时也更容易扩展:

import pandas as pd

# 先初始化result列为默认值(这里用None,你可以换成其他值)
df['result'] = None

# 第一个条件:当Runid='R1'且type=1.5时,result设为'pass'
df.loc[(df['Runid'] == 'R1') & (df['type'] == 1.5), 'result'] = 'pass'

# 第二个条件:当Runid='R2'且type=1时,result设为'fail'
df.loc[(df['Runid'] == 'R2') & (df['type'] == 1), 'result'] = 'fail'

小提示

  • 如果你的数据集里还有其他需要匹配的条件,可以继续嵌套np.where或者追加loc语句。
  • 避免使用apply自定义函数处理这类简单条件,因为它的运行效率远低于上面两种方法,数据量大时差异会很明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 18:32:31