【问题标题】:Dataframe-Normalize each row by row's maximumDataframe-按行的最大值对每一行进行归一化
【发布时间】:2015-12-09 16:54:17
【问题描述】:

是否有任何方便的方法可以按行的最大值对每一行进行归一化(除以行的最大值) 例如:

df=
A  B  C
2  1  1
1  4  1
0  2  1
return:
A     B     C
1    0.5   0.5
0.25  1   0.25
0     1    0.5

【问题讨论】:

    标签: python numpy pandas dataframe


    【解决方案1】:

    您可以使用 apply 并按行应用 lambda:

    In [199]:
    df.apply(lambda x: x/x.max(), axis=1)
    
    Out[199]:
          A    B     C
    0  1.00  0.5  0.50
    1  0.25  1.0  0.25
    2  0.00  1.0  0.50
    

    你也可以使用div:

    In [205]:
    df.div(df.max(axis=1), axis=0)
    
    Out[205]:
          A    B     C
    0  1.00  0.5  0.50
    1  0.25  1.0  0.25
    2  0.00  1.0  0.50
    

    【讨论】:

    • 还有df.div(df.max(axis=1),axis=0)
    • @DSM 有趣的是默认值是 axis=columns 我假设默认值是索引所以开始使用.t 强制形状,感谢您的建议
    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 2018-10-24
    • 1970-01-01
    • 2021-08-24
    • 2013-06-19
    • 1970-01-01
    • 2011-12-07
    • 2017-08-20
    相关资源
    最近更新 更多