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

Pandas DataFrame按条件计算新列rev的代码如何编写?

Pandas新增rev列实现代码

以下是几种不同场景的实现方案,按需选择即可:

方案1:numpy.where实现(最高效,优先推荐)

适合大数据量场景,运算速度最快:

import numpy as np
# 条件满足返回两列乘积,不满足返回0
df['rev'] = np.where(df['item_cnt_day'] >= 0, df['item_cnt_day'] * df['item_price'], 0)

方案2:Pandas原生where实现(无额外依赖)

不想引入numpy依赖时使用:

# 先计算乘积,不符合条件的位置替换为0
df['rev'] = (df['item_cnt_day'] * df['item_price']).where(df['item_cnt_day'] >= 0, 0)

方案3:apply自定义函数实现(适合后续逻辑扩展)

小数据量、后续需要增加复杂判断逻辑时使用:

def calculate_rev(row):
    if row['item_cnt_day'] >= 0:
        return row['item_cnt_day'] * row['item_price']
    return 0

df['rev'] = df.apply(calculate_rev, axis=1)

注意:执行前可通过df.dtypes确认item_cnt_day和item_price为数值类型,若为字符串类型需先转为int/float格式再执行计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:00:04