【Python】 使用 pandas 进行数据归一化


那年夏天我和你躲在 这一大片宁静的海

直到后来我们都还在 对这个世界充满期待

今年冬天你已经不在 我的心空出了一块

很高兴遇见你 让我终究明白

回忆比真实精彩

🎵 王心凌《那年夏天宁静的海》


数据归一化(Normalization)是数据预处理中常见的一步,它通过缩放特征值,使它们位于一定范围内,通常是 0, 1-1, 1。归一化有助于消除不同量纲和量级之间的影响,使得算法更加稳定和高效。本文将介绍如何使用 pandas 库进行数据归一化。

为什么需要归一化?

提升模型性能:归一化后的数据可以加速梯度下降优化过程,提高机器学习模型的收敛速度和预测性能。

消除量纲影响:在距离度量算法(如KNN)中,归一化能消除不同特征之间的量纲影响,使得特征之间的贡献更加均衡。

提高稳定性:归一化能防止数值计算中可能出现的溢出或下溢,提高模型的稳定性。

数据归一化方法

常见的归一化方法包括:

最小-最大归一化(Min-Max Normalization)

Z-score标准化

示例数据

首先,我们创建一个包含多个特征的示例 DataFrame。

python 复制代码
复制代码
import pandas as pd
import numpy as np

# 创建示例数据
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)

print("原始数据:")
print(df)

最小-最大归一化

python 复制代码
df_min_max_scaled = (df - df.min()) / (df.max() - df.min())

print("\n最小-最大归一化后的数据:")
print(df_min_max_scaled)

Z-score标准化

Z-score标准化通过减去均值并除以标准差将特征值转化为均值为0,标准差为1的标准正态分布。

python 复制代码
# Z-score标准化
df_z_score_scaled = (df - df.mean()) / df.std()

print("\nZ-score标准化后的数据:")
print(df_z_score_scaled)

完整代码示例

以下是完整的代码示例,从创建数据到应用两种归一化方法:

python 复制代码
import pandas as pd
import numpy as np

# 创建示例数据
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)

print("原始数据:")
print(df)

# 最小-最大归一化
df_min_max_scaled = (df - df.min()) / (df.max() - df.min())

print("\n最小-最大归一化后的数据:")
print(df_min_max_scaled)

# Z-score标准化
df_z_score_scaled = (df - df.mean()) / df.std()

print("\nZ-score标准化后的数据:")
print(df_z_score_scaled)

输出结果

plaintext 复制代码
原始数据:
   A   B    C
0  1  10  100
1  2  20  200
2  3  30  300
3  4  40  400
4  5  50  500

最小-最大归一化后的数据:
     A    B    C
0  0.00  0.00  0.00
1  0.25  0.25  0.25
2  0.50  0.50  0.50
3  0.75  0.75  0.75
4  1.00  1.00  1.00

Z-score标准化后的数据:
          A         B         C
0 -1.264911 -1.264911 -1.264911
1 -0.632456 -0.632456 -0.632456
2  0.000000  0.000000  0.000000
3  0.632456  0.632456  0.632456
4  1.264911  1.264911  1.264911

总结

数据归一化是数据预处理中重要的一步,通过缩放特征值,使其位于特定范围内,能够提高模型性能,消除量纲影响,提高计算稳定性。本文介绍了最常用的两种归一化方法:最小-最大归一化和Z-score标准化,并提供了 pandas 实现这些方法的完整代码示例。

相关推荐
默_笙1 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003961 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技1 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读1 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时1 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车1 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊1 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1231 天前
2026年第38周GitHub趋势周报
python·科技·github