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

如何基于字符串匹配与数值判断条件创建数据表计算列

需求说明

你需要在现有数据集新增BUSYBOARD列,赋值逻辑为同时满足以下两个条件时取值为1,否则取值为0:

  • COMMITTEENAME字段值包含Cyber或Technology关键词
  • DIRECTORS字段值大于5

以下是不同使用场景下可直接复用的实现方案:

方案1:Python Pandas 实现(适用于批量数据处理场景)

使用pandas向量化运算实现,代码简洁、处理大规模数据性能好:

import pandas as pd

# 替换为你的实际数据集读取路径
df = pd.read_csv("your_dataset_path.csv")

# 按规则生成BUSYBOARD列
df["BUSYBOARD"] = (
    df["COMMITTEENAME"].str.contains("Cyber|Technology", case=False, na=False)
    & (df["DIRECTORS"] > 5)
).astype(int)

# 验证输出结果,需要保存文件可放开下方注释
print(df)
# df.to_csv("result.csv", index=False)

运行后输出和预期完全一致:

COMMITTEENAME  DIRECTORS  BUSYBOARD
0         Cyber          8          1
1    Technology          3          0
2         Audit         12          0
3  Cyber Safety          4          0
4    Governance          2          0

注:case=False表示匹配关键词时不区分大小写,需要严格匹配大小写可删除该参数;na=False会将委员会名称为空的记录判定为不匹配关键词,避免运行报错。

方案2:SQL 实现(适用于数据存储在数据库的场景)

数据存在关系型数据库中时,可直接通过CASE WHEN语法查询得到结果:

SELECT 
    COMMITTEENAME,
    DIRECTORS,
    CASE 
        WHEN (COMMITTEENAME LIKE '%Cyber%' OR COMMITTEENAME LIKE '%Technology%') 
          AND DIRECTORS > 5 
        THEN 1 
        ELSE 0 
    END AS BUSYBOARD
FROM your_table_name;
方案3:Excel/WPS 表格实现(适用于小批量手动处理场景)

假设数据第1行为表头,COMMITTEENAME在A列、DIRECTORS在B列,在C2单元格输入以下公式后下拉填充整列即可:

=IF(AND(OR(ISNUMBER(SEARCH("Cyber",A2)),ISNUMBER(SEARCH("Technology",A2))),B2>5),1,0)

注:SEARCH函数不区分大小写,需要严格匹配大小写可替换为FIND函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:36:20