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

如何对DataFrame特定列执行Z-score标准化?

如何对Pandas数据集中的特定列执行Z-score标准化?

没问题,要只对指定列做标准化而保留其他列原样的话,我们只需要针对性地选中目标列进行处理,再把处理后的值替换回原数据集就可以了,不用对整个DataFrame调用zscore。

先给你修改好的完整代码,后面再拆解说明:

import pandas as pd
import numpy as np  # 注意要导入numpy,原代码里用到了np但没显式导入
from scipy.stats import zscore

# 读取数据集并处理缺失值
df = pd.read_csv('dataset.csv', sep=',')
df = df.replace([np.inf, -np.inf], np.nan).dropna(axis=0)

# 定义需要标准化的目标列
target_cols = ['Col_1', 'Col_5', 'Col_21']

# 仅对目标列应用zscore标准化,然后替换回原数据集
df[target_cols] = df[target_cols].apply(zscore)

关键说明:

  • 原来的df.apply(zscore)会遍历所有列执行标准化,现在我们通过df[target_cols]精准选中需要处理的列,再对这个子集调用apply(zscore),最后把结果赋值回原DataFrame的对应列,这样其他21列完全不受影响。
  • 别忘了导入numpy,原代码里用到了np.inf、np.nan但没写导入语句,运行时会抛出NameError错误。
  • 提前确认target_cols里的列都是数值型列(比如int/float),如果是字符串或分类列,zscore会抛出错误,你可以用df[target_cols].dtypes快速检查列类型。

这样处理后,你的数据集就只有指定的3列被标准化,其他列保持原始状态啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:01:09