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

如何用Pandas和Numpy按条件修改DataFrame的medianIncome列值

DataFrame列值截断实现方案

针对你需要将medianIncome列中≤0.4999的值替换为0.4999、≥15.0001的值替换为15.0001的需求,这里提供两种符合要求(仅用Pandas和Numpy,无lambda)的实现方案:

方法一:嵌套使用np.where

你已经写出了部分np.where代码,这里补全完整逻辑:

import numpy as np
import pandas as pd

# 先处理上限,再处理下限
housing['medianIncome'] = np.where(
    housing['medianIncome'] >= 15.0001,
    15.0001,
    np.where(
        housing['medianIncome'] <= 0.4999,
        0.4999,
        housing['medianIncome']
    )
)

逻辑说明:

  • 第一层判断:如果值≥15.0001,替换为15.0001
  • 第二层判断:如果不满足第一层,再检查是否≤0.4999,是则替换为0.4999
  • 都不满足的话,保留原数值

方法二:使用Pandas的clip方法(更简洁高效)

Pandas的clip方法专门用于对列值进行上下限截断,完全匹配你的需求:

housing['medianIncome'] = housing['medianIncome'].clip(lower=0.4999, upper=15.0001)

逻辑说明:

  • lower参数设置下限:所有≤0.4999的值会被替换为0.4999
  • upper参数设置上限:所有≥15.0001的值会被替换为15.0001
  • 中间范围的数值保持不变

验证示例

用你提供的样本数据测试,比如其中medianIncome为83252.0的行,处理后会被替换为15.0001;如果有值≤0.4999的行,会被替换为0.4999,其余值保持原样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:15:57