我想对 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
感谢您的帮助!
最佳答案
使用DataFrame.rank
使用参数 axis=1
和 ascending=False
,添加 DataFrame.add_suffix
对于 chnage 列名称和最后一个 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
关于python - 如何对 pandas 中每一行的值进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422352/