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

Pandas DataFrame:两列求和生成新列并实现数据校验规则

在Pandas DataFrame中按规则添加薪资求和列

实现思路

  1. 先校验数据合法性:检查是否存在salay_1和salay_2同时大于0的行,若存在直接抛出错误
  2. 合法数据下,新列值为两列的求和结果(本质上就是取非0列的值,或两列都为0时取0)

代码实现

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'salay_1': [0.00, 0.00, 20.00, 20.00],
    'salay_2': [0.00, 10.00, 0.00, 5.00]
})

# 检查违规行:两列数值均大于0
invalid_rows = df[(df['salay_1'] > 0) & (df['salay_2'] > 0)]
if not invalid_rows.empty:
    raise ValueError(f"检测到违规行,salay_1与salay_2均大于0:\n{invalid_rows}")

# 添加求和新列
df['salay_sum'] = df['salay_1'] + df['salay_2']

print(df)

代码说明

  • 违规校验:通过布尔索引筛选出不符合规则的行,若结果不为空则抛出ValueError并展示违规行详情
  • 求和计算:符合规则的场景下,要么其中一列为0,要么两列都是0,直接求和即可得到预期结果,无需额外复杂判断

运行结果

  • 若仅保留前3行合法数据,输出如下:
salay_1  salay_2  salay_sum
0      0.0      0.0        0.0
1      0.0     10.0       10.0
2     20.0      0.0       20.0
  • 若包含第4行违规数据,会直接抛出错误:
ValueError: 检测到违规行,salay_1与salay_2均大于0:
   salay_1  salay_2
3     20.0      5.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:06:32