如何在熊猫的每一行中对价值进行排名

时间:2019-12-20 08:55:43

标签: python pandas

我想对熊猫每一行中的值进行排名,那么该怎么做呢? 数据如下:

   a            b            c          
0.000121    -0.000034   -0.000455   
-0.000265   -0.000007   -0.000009   

所需结果如下:

   a            b            c         a_rank        b_rank       c_rank          
0.000121    -0.000034   -0.000455         1            2            3
-0.000265   -0.000007   -0.000009         3            1            2 

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

DataFrame.rank与参数axis=1ascending=False一起使用,将DataFrame.add_suffix添加到频道列名称中,并将DataFrame.join添加到原始位置:

df = df.join(df.rank(axis=1, ascending=False).astype(int).add_suffix('_rank'))
print (df)
          a         b         c  a_rank  b_rank  c_rank
0  0.000121 -0.000034 -0.000455       1       2       3
1 -0.000265 -0.000007 -0.000009       3       1       2

答案 1 :(得分:1)

axis=1DataFrame.rank上使用DataFrame.add_suffix

df = pd.concat([df, df.rank(axis=1, ascending=False).add_suffix('_rank').astype(int)], axis=1)

          a         b         c  a_rank  b_rank  c_rank
0  0.000121 -0.000034 -0.000455       1       2       3
1 -0.000265 -0.000007 -0.000009       3       1       2