我想对熊猫每一行中的值进行排名,那么该怎么做呢? 数据如下:
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
感谢您的帮助!
答案 0 :(得分:1)
将DataFrame.rank
与参数axis=1
和ascending=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=1
和DataFrame.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