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

如何使用Pandas重新排序表格或DataFrame?附列值范围示例

Pandas 实现列数据归一化到0-100范围

你需要将DataFrame中每列的数值线性缩放到0-100区间,也就是最小-最大归一化。下面两种方法都能实现你的需求:

方法一:手动计算(无需额外库)

直接利用Pandas的广播特性,对每列单独计算归一化值:

import pandas as pd

# 模拟你的输入DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [10, 11, 12, 13, 15],
    'C': [100, 120, 130, 140, 150]
})

# 对每列执行最小-最大缩放至0-100
normalized_df = (df - df.min()) / (df.max() - df.min()) * 100

# 保留整数格式(和示例输出一致)
normalized_df = normalized_df.round(0).astype(int)

print(normalized_df)

输出结果:

A   B    C
0    0   0    0
1   25  20   40
2   50  40   60
3   75  60   80
4  100 100  100

方法二:使用scikit-learn的MinMaxScaler

适合数据量较大或需要整合机器学习流程的场景:

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [10, 11, 12, 13, 15],
    'C': [100, 120, 130, 140, 150]
})

scaler = MinMaxScaler(feature_range=(0, 100))
# 拟合转换数据并转回DataFrame格式
normalized_df = pd.DataFrame(
    scaler.fit_transform(df),
    columns=df.columns
).round(0).astype(int)

print(normalized_df)

两种方法都能得到符合预期的结果,手动计算更直观,sklearn方式更适配复杂场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:45:32