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

如何用Pandas按列将0-5范围数据缩放到0-4范围?

Pandas按列将0-5范围数据缩放到0-4的最优方法

核心思路

原数据范围为0-5,目标范围是0-4,最直接高效的处理方式是线性映射,公式为:
缩放后值 = (原始值 / 5) * 4
该方法能完整保留数据的相对比例,同时精准贴合目标范围,结合Pandas的矢量化操作可实现最高处理效率。

代码实现

  1. 构造示例DataFrame:
import pandas as pd

data = {
    'a': [0, 5, 1, 3],
    'b': [2, 4, 4, 4],
    'c': [5, 3, 2, 0]
}
df = pd.DataFrame(data)
  1. 执行缩放(最优矢量化方案):
# 直接对整列进行批量计算,无需循环
scaled_df = df * (4/5)

执行后结果:

abc
001.64
143.22.4
20.83.21.6
32.43.20
  1. 可选:转为整数类型
    如果需要整数结果,可根据需求选择处理方式:
# 直接截断小数转为整数
scaled_df_int = (df * (4/5)).astype(int)
# 四舍五入后转为整数
scaled_df_round = (df * (4/5)).round().astype(int)
  1. 可选:限制值在目标范围内
    若担心原数据存在超出0-5的异常值,可添加范围约束:
scaled_df = (df * (4/5)).clip(0, 4)

方案优势

  • 效率最优:基于numpy的矢量化操作避免了逐行循环,处理大规模数据集时速度远超自定义循环逻辑。
  • 代码简洁:一行代码完成整表缩放,可读性强,维护成本低。
  • 比例保留:线性映射不会破坏原数据的相对分布,完美适配这种因录入错误导致范围偏移的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:55:23