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

如何在DataFrame中根据条件添加标记列

实现DataFrame按条件添加Flag列

原始数据

ID time-A time-B time-C
A  30     40     50
B  NULL   60     50
C  30     20     50

需求

新增Flag列:

  • 当time-A为NULL 且 time-B/time-C ≥ 1时,标记为'Y'
  • 其他情况标记为'N'

期望结果

ID time-A time-B time-C Flag
A  30     40     50     N
B  NULL   60     50     Y
C  30     20     50     N

解决方案(基于Pandas)

步骤1:构造DataFrame

将原始数据转为Pandas可处理的格式(原始NULL对应Pandas中的NaN):

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'ID': ['A', 'B', 'C'],
    'time-A': [30, np.nan, 30],
    'time-B': [40, 60, 20],
    'time-C': [50, 50, 50]
})

步骤2:生成Flag列

用np.where()批量判断条件,高效生成目标列:

df['Flag'] = np.where(
    (pd.isna(df['time-A'])) & ((df['time-B'] / df['time-C']) >= 1),
    'Y',
    'N'
)

验证结果

执行后打印df即可得到期望输出:

print(df)

说明

  • pd.isna() 用于准确识别time-A列的空值(对应原始数据的NULL)
  • 逻辑与操作符&确保两个条件同时满足
  • np.where() 比df.apply()的循环处理效率更高,适合批量数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:15:45