我想将所有列的pandas数据帧规范化
In [8]: df
Out[8]:
x y
0 1 2
1 2 3
2 3 4
我做
df_nor = (df-df.min())/(df.max()-df.min())
OUT:
In [10]: df_nor
Out[10]:
x y
0 0.0 0.0
1 0.5 0.5
2 1.0 1.0
如何将列x和y一起标准化,如
In [10]: df_nor
Out[10]:
x y
0 0.000 0.333
1 0.333 0.666
2 0.666 1.000
谢谢!
答案 0 :(得分:1)
因为它是NumPy标记的,所以这是使用底层数组数据的那个 -
In [54]: a = df.values # get underlying array
In [55]: pd.DataFrame((a-a.min())/(a.max()-a.min()), columns=df.columns)
Out[55]:
x y
0 0.000000 0.333333
1 0.333333 0.666667
2 0.666667 1.000000
或者更接近pandas
,我们可以做 -
In [79]: (df-df.values.min())/(df.values.max()-df.values.min())
Out[79]:
x y
0 0.000000 0.333333
1 0.333333 0.666667
2 0.666667 1.000000