如何使用scikit-learn通过标准差来规范化数据框?

时间:2018-03-04 23:16:19

标签: python pandas sklearn-pandas

给出以下数据框和left-x列:

|       | left-x | left-y | right-x | right-y |
|-------|--------|--------|---------|---------|
| frame |        |        |         |         |
| 0     | 149    | 181    | 170     | 175     |
| 1     | 149    | 181    | 170     | 175     |
| 2     | 149    | 181    | 170     | 175     |
| 3     | 149    | 181    | 170     | 175     |

如何使用scikit-learn library标准偏差将left-x标准化?

2 个答案:

答案 0 :(得分:5)

您可以按标准偏差进行标准化,而无需使用sci-kit-learn,如下所示:

.find_element_by_link_text("Box Score")

或者,如果您还想要中心数据:

df['left-x'] = df['left-x'] / df['left-x'].std()

此处df['left-x'] = (df['left-x'] - df['left-x'].mean())/df['left-x'].std() 是您的df变量。

asl.df[l]方法给出了给定轴上数据帧的标准偏差。通过首先选择一列,仅为该列计算标准偏差。

如果你需要做很多事情并希望避免混乱,你可以把它包装成一个函数,例如

.std()

你称之为:

def std_norm(df, column):
    c = df[column]
    df[column] = (c - c.mean())/c.std()

请注意,这会就地更新传递的DataFrame。

答案 1 :(得分:2)

您可以使用sklearn.preprocessing模块中的缩放功能。

from sklearn.preprocessing import StandardScaler

sc = StandardScaler()
sc.fit(df['left-x'])

df['left-x'] = sc.transform(df['left-x'])