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

如何在pandas DataFrame中排除指定列后对其余列做MinMaxScaler缩放

解决方案

你可以通过pandas列名差集的方式排除B列,仅对剩余列做缩放,修改后的完整代码如下:

import pandas as pd
from sklearn.preprocessing import MinMaxScaler


scaler = MinMaxScaler()

df = pd.DataFrame({'A':[14.00,90.20,90.95,96.27,91.21],
                           'B':[103.02,107.26,110.35,114.23,114.68],
                           'C':[3,5,4,2,3]})
# 排除B列,获取需要缩放的列
cols_to_scale = df.columns.difference(['B'], sort=False)
# 仅对目标列做拟合转换
df[cols_to_scale] = scaler.fit_transform(df[cols_to_scale])

代码说明

  • df.columns.difference(['B'], sort=False) 会返回所有列名中排除B后的列表,加sort=False参数是为了保留原始列的先后顺序,避免缩放后列顺序错乱
  • 拟合、转换、赋值三个步骤都仅作用于筛选出来的列,B列会完全保留原始数值
  • 如果后续需要排除更多列,只需要修改difference方法传入的列表即可,比如要排除B、D两列就写成difference(['B','D'], sort=False)

如果不需要用排除法,也可以直接指定要缩放的列:

cols_to_scale = ['A', 'C']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:04