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

如何基于多if条件为DataFrame创建指定规则的新列

实现方法

以下是基于pandas的几种实现方案,按运行效率从高到低排序:

  • 方案1:直接赋值+条件筛选(最高效,适合大数据量)
# 先给新列默认赋值为B(覆盖规则1、3的所有情况)
df['new_col'] = 'B'
# 仅修改满足white为真且black为假的行,赋值为W(匹配规则2)
df.loc[(df['white'] == 1) & (df['black'] == 0), 'new_col'] = 'W'
  • 方案2:嵌套np.where实现
import numpy as np

df['new_col'] = np.where(df['black'] == 1, 'B',
                np.where(df['white'] == 1, 'W', 'B'))
  • 方案3:apply自定义函数(可读性最高,小数据量场景可用)
def assign_color(row):
    if row['black']:
        return 'B'
    elif row['white']:
        return 'W'
    else:
        return 'B'

df['new_col'] = df.apply(assign_color, axis=1)

补充说明:
所有方案默认black判断优先级高于white,如果某行同时满足black和white为1,会优先赋值为B,符合你给出的规则顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:57:03