在特定列规范化 Pandas DataFrame

Posted

技术标签:

【中文标题】在特定列规范化 Pandas DataFrame【英文标题】:Normalize Pandas DataFrame at specific columns 【发布时间】:2019-03-15 19:18:55 【问题描述】:

我有一个具有以下结构的 Pandas DataFrame。

Feature 1  | Feature 2  | Feature 3
10         | 200        | True
30         | 233        | False
45         | 344        | True

知道如何仅对 feature 1feature 2 进行规范化吗?不改变原始DataFrame的索引。

我已经尝试过以下代码,但它会将所有列标准化并将数据帧的索引更改为 0,1,2

x = df.values
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
dataset = pd.DataFrame(x_scaled)

【问题讨论】:

【参考方案1】:

只需创建数据框的视图:

x = df[['Feature 1', 'Feature 2']]
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
dataset = pd.DataFrame(x_scaled)
dataset['Feature 3'] = df['Feature 3']

【讨论】:

它的工作,但我也必须在新数据集中包含“特征 3”(没有规范化)。 检查更新(注意您的示例数据没有索引,所以它应该可以工作)

以上是关于在特定列规范化 Pandas DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

pandas DataFrame:规范化一个 JSON 列并与其他列合并

Pandas:按行从 DataFrame 的特定列中选择值

pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe)

pandas基于条件判断更新dataframe中特定数据列数值内容的值(Conditionally updating values in specific pandas Dataframe )

使用 JSON 对象展开 Pandas DataFrame 列

pandas基于条件判断更新dataframe中特定数据列数值内容的值(Conditionally updating values in specific pandas Dataframe )