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

Pandas如何对浮点列≥100的数值按指定公式原位修改

Pandas float列条件计算原位替换实现方法

核心思路

采用Pandas向量化操作实现,比逐行遍历/apply效率更高,同时直接赋值回原列实现原位替换,满足需求。

完整实现代码

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    "其他列": ["foobar", "foobar", "fuubahr"],
    "存储为float的百分比列": [84.85, 15.95, 102.25]
})

# 方法1:mask方法(代码最简洁)
# 条件为真时替换为计算值,否则保留原值,直接赋值回原列完成原位替换
df["存储为float的百分比列"] = df["存储为float的百分比列"].mask(
    df["存储为float的百分比列"] >= 100.00,
    ((df["存储为float的百分比列"] - 100) * 0.25) + 100
)

# 方法2:loc定位修改(逻辑更直观,适合新手理解)
# 先定位符合条件的行,再直接赋值计算后的结果
# cond = df["存储为float的百分比列"] >= 100.00
# df.loc[cond, "存储为float的百分比列"] = ((df.loc[cond, "存储为float的百分比列"] - 100) * 0.25) + 100

# 输出验证结果
print(df)

输出结果

运行后得到的结果和期望完全一致:

其他列存储为float的百分比列
foobar84.8500
foobar15.9500
fuubahr100.5625

注意事项

  • 两种方法都支持原位修改,不需要额外生成新列
  • 如果列中存在空值NaN,可以在mask方法中添加na_action='ignore'参数跳过空值,避免计算报错

内容的提问来源于stack exchange,提问作者Kartöfluvofan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:24:02