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

使用StandardScaler缩放数据后调用head()报AttributeError如何解决?

解决StandardScaler缩放后调用head()报错的问题

问题原因

scaler.transform(data)返回的是numpy.ndarray类型的数组,而head()是pandas DataFrame特有的方法,数组对象没有这个属性,因此触发AttributeError。

解决方案

方案1:将缩放结果转回DataFrame(推荐,保留列名)

把缩放后的数组重新包装成pandas DataFrame,复用原数据集的列名,就能正常使用head()方法:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns
%matplotlib inline

data = pd.read_csv('data.csv', nrows=50000)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
# 拟合数据后转换结果,再转为DataFrame并保留原列名
scaled_data = pd.DataFrame(scaler.fit_transform(data), columns=data.columns)

# 正常调用head()
scaled_data.head()

方案2:直接用numpy切片查看前几行

如果不需要DataFrame格式,直接用numpy数组的切片语法查看前N行,效果和head()一致:

scaled_data = scaler.transform(data)
# 查看前5行
print(scaled_data[:5])

简化写法

可以用fit_transform一步完成拟合和转换,减少代码行数:

scaled_data = pd.DataFrame(scaler.fit_transform(data), columns=data.columns)
scaled_data.head()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:09:52