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

如何对DataFrame特定列应用向量化操作?以泰坦尼克号数据集为例

泰坦尼克号数据集部分列归一化方案

核心思路

只对指定数值列做归一化,保留所有object类型列,同时跳过survived这类无需修改的数值(布尔)列。


1. 筛选目标列

先找出所有需要归一化的数值列:排除survived,同时避开object类型列。

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 假设已加载titanic数据集
# titanic = pd.read_csv("titanic.csv")

# 定义无需修改的数值列
exclude_cols = ["survived"]
# 筛选出要归一化的数值列:所有数值列 - 排除列
target_cols = titanic.select_dtypes(include=["int64", "float64"]).columns.difference(exclude_cols)

2. 执行归一化

这里用常用的Min-Max归一化(将数值缩放到0-1区间),提供两种实现方式:

方式一:覆盖原列

直接替换原始数值列,节省存储空间:

scaler = MinMaxScaler()
# 对目标列做归一化并替换原数据
titanic[target_cols] = scaler.fit_transform(titanic[target_cols])

方式二:保留原列,生成归一化新列

如果需要保留原始数值,给归一化后的列加后缀区分:

scaler = MinMaxScaler()
# 生成新列名
normalized_col_names = [f"{col}_normalized" for col in target_cols]
# 赋值新列
titanic[normalized_col_names] = scaler.fit_transform(titanic[target_cols])

3. 验证结果

确认处理后的数据符合预期:

# 查看前5行数据
print(titanic.head())
# 检查survived列是否仍为0/1
print(titanic["survived"].unique())
# 检查归一化列的取值范围(Min-Max后应为0-1)
print(titanic[target_cols].describe())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:10:21