【问题标题】:Normalize pandas dataframe with all columns together规范化所有列的熊猫数据框
【发布时间】:2017-07-27 20:15:23
【问题描述】:

我想规范化所有列的 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())

输出:

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

谢谢!

【问题讨论】:

    标签: python pandas numpy


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2014-12-12
      • 2020-10-21
      • 2017-05-04
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2015-04-19
      相关资源
      最近更新 更多