给出以下数据框和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
标准化?
答案 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'])