如何用统一均值标准化整个DataFrame而非按列单独标准化?
统一标准化整个DataFrame的解决方案
无需修改原始DataFrame结构,通过数组重塑即可让StandardScaler基于全局均值和标准差处理所有数据,具体实现如下:
代码示例
import pandas as pd from sklearn.preprocessing import StandardScaler # 假设你的原始数据是带日期索引、房间列的DataFrame(变量名df) scaler = StandardScaler() # 将所有数据平铺为单一特征列,执行全局标准化 scaled_flat = scaler.fit_transform(df.values.reshape(-1, 1)) # 把标准化后的数据还原回原DataFrame的行列结构 scaled_data = scaled_flat.reshape(df.shape) # 用原索引和列名重建标准化后的DataFrame scaled_df = pd.DataFrame(scaled_data, index=df.index, columns=df.columns)
原理说明
df.values.reshape(-1, 1)将所有房间的温度数据合并成一列,迫使StandardScaler计算全局统一的均值和标准差,而非按列单独统计。- 标准化完成后,通过
reshape(df.shape)恢复原表格结构,保留原有的日期索引和房间列名,后续操作与原始DataFrame完全兼容,不会增加额外繁琐度。
内容的提问来源于stack exchange,提问作者grinsekatze152
相关产品推荐
相关产品推荐

