You need to enable JavaScript to run this app. 基于Class、Value列的Pandas DataFrame多条件赋值
优惠活动
大模型
产品
解决方案
定价
更多

基于Class、Value列的Pandas DataFrame多条件赋值

多条件下DataFrame列值赋值实现

你可以通过pandas搭配numpy的向量化判断逻辑完成赋值,全程无需逐行遍历,运行效率更高,代码也更易维护。

实现代码

import pandas as pd
import numpy as np

# 读取你的业务数据,替换为实际的文件读取逻辑即可
# df = pd.read_csv("你的数据文件路径")

# 按优先级匹配所有嵌套判断条件
condition_list = [
    # Class为2或3,且Value小于0.5
    (df["Class"].isin([2, 3])) & (df["Value"] < 0.5),
    # Class为2或3,且Value处于(0.5, 0.7]区间
    (df["Class"].isin([2, 3])) & (df["Value"].between(0.5, 0.7, inclusive="right")),
    # Class为2或3,且Value处于(0.7, 0.9]区间
    (df["Class"].isin([2, 3])) & (df["Value"].between(0.7, 0.9, inclusive="right"))
]

# 匹配对应条件时的赋值
assign_values = [0, 0.25, 0.5]
# 不满足所有上述条件时,默认赋值为1
df["Percentage"] = np.select(condition_list, assign_values, default=1)

逻辑对齐说明

  • 边界判断完全匹配需求规则:between方法设置inclusive="right"时,区间为左开右闭,不会出现0.5、0.7、0.9这类关键边界值的判断偏差
  • 所有判断为向量化运算,哪怕处理百万行级别的数据,运行速度也远快于逐行循环的判断写法
  • 最终输出和你给出的示例效果完全一致:
ClassValuePercentage
20.010
20.60.25
30.90.5
331

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 11:45:04