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

运行Python Pandas中Standard Scaler相关代码报错如何排查解决

Pandas 搭配 StandardScaler 标准化报错修复方案

报错根因定位

结合代码和报错信息,按出现优先级排序,问题点如下:

  • 多列选取语法错误
    代码中选取多列的写法df["age", "income", "score"]不符合Pandas语法规则,选取多列时必须传入列名构成的列表,即需要使用两层方括号,错误写法会直接触发KeyError。
  • 待处理列存在非数值内容
    StandardScaler仅支持数值型输入,如果目标列混入字符串、特殊符号等非数值内容,会触发浮点转换失败的ValueError。
  • 数据集存在缺失值
    目标列包含NaN/空值时,StandardScaler计算均值、标准差的逻辑会直接中断报错。

修复步骤

  1. 先修正列选取语法,同时提前做数据类型转换和缺失值处理,再执行标准化:
import pandas as pd
from sklearn.preprocessing import StandardScaler

df = pd.read_csv("data.csv")
scaler = StandardScaler()
# 统一声明要处理的目标列,避免重复写列名出错
target_columns = ["age", "income", "score"]

# 把目标列强制转为数值类型,无法转换的非法内容标记为缺失值
df[target_columns] = df[target_columns].apply(pd.to_numeric, errors="coerce")
# 用对应列的均值填充缺失值,也可以根据业务场景换成中位数、0等填充值
df[target_columns] = df[target_columns].fillna(df[target_columns].mean())
# 执行标准化并赋值回原DataFrame
df[target_columns] = scaler.fit_transform(df[target_columns])
  1. 如果是旧版本Pandas/sklearn,赋值时出现维度不匹配报错,可以把标准化结果先转为numpy数组再赋值:
df[target_columns] = scaler.fit_transform(df[target_columns].values)

验证方法

执行完代码后运行print(df[target_columns].describe()),如果输出的每列均值接近0、标准差接近1,说明标准化执行成功。


内容的提问来源于stack exchange,提问作者mikail gökçe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:09:41