首页 > 解决方案 > 如何根据列权重规范化数据框

问题描述

我有这个数据框,我想使用 A 列作为权重对其(B、C、D 列)进行标准化/标准化。

一个 C D
34 5 1 12
26 9 0 2
10 0 4 1

那可能吗?

标签: pythonpandasdataframescikit-learn

解决方案


听起来您想将 B、C 和 D 列中的值除以 A 列中相应的行值。

要使用名为 df 的 pandas 数据框执行此操作:

print(df)

A   B   C   D
34  5   1   12
26  9   0   2
10  0   4   1

cols = df.columns[1:]
for column in cols:
    df[column] = df[column]/df["A"]

print(df)

A   B           C           D
34  0.147059    0.029412    0.352941
26  0.346154    0.000000    0.076923
10  0.000000    0.400000    0.100000

推荐阅读