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

Pandas使用mask和df.where时如何对符合条件的值执行乘法替换

实现方案

你可以通过以下两种常用方法实现需求:

方法1:布尔索引直接赋值(最简单直观)

直接对符合mask条件的单元格执行乘法运算赋值即可:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame([[0.0, 0.0], [3.0, 0.0]])
mask = (df != 0.0)

# 符合条件的数值乘0.5
df[mask] *= 0.5

方法2:使用mask方法实现链式调用

如果你需要链式操作不修改原始DataFrame,可以用pandas自带的mask方法(和where逻辑相反,条件为True时替换为指定值):

import pandas as pd

df = pd.DataFrame([[0.0, 0.0], [3.0, 0.0]])
mask = (df != 0.0)

# 链式操作生成新DataFrame
df = df.mask(mask, df * 0.5)

两种方法执行后得到的结果都符合你的预期:

0    1
0  0.0  0.0
1  1.5  0.0

内容的提问来源于stack exchange,提问作者8-Bit Borges

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:24:03