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

如何使用Python的apply方法对DataFrame数值列做标准化处理?

实现DataFrame数值列的标准化处理

咱们先明确需求:已经用指定代码创建了一个5行5列的DataFrame,现在要定义一个叫Standardizing的函数来标准化Series,再把这个函数应用到DataFrame的所有数值列上。

第一步:准备基础环境与目标DataFrame

先把需要的库导入,再创建题目要求的DataFrame:

import pandas as pd
import numpy as np

# 创建5行5列的目标DataFrame
df = pd.DataFrame(np.random.randn(25).reshape(5,5), index=list('abcde'), columns=list('vwxyz'))

第二步:定义标准化函数Standardizing

这个函数接收一个Series对象,核心逻辑是计算该Series的均值和标准差,然后对每个元素执行**(元素值 - 均值) / 标准差**的标准化变换。另外加了个小判断,避免标准差为0时出现除以0的错误:

def Standardizing(s):
    mean_val = s.mean()
    std_val = s.std()
    # 处理标准差为0的特殊情况
    if std_val == 0:
        return s - mean_val
    return (s - mean_val) / std_val

第三步:将函数应用到所有数值列

可以用select_dtypes精准筛选int或float类型的列,再通过apply把函数批量应用到这些列上:

# 仅对数值列应用标准化函数
standardized_df = df.select_dtypes(include=['int', 'float']).apply(Standardizing)

如果你的DataFrame里全是数值列,也可以简化成:

standardized_df = df.apply(Standardizing)

处理完成后,standardized_df里的每一列都会变成均值接近0、标准差接近1的标准化数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:29:53