如何将 Pandas 行的值排列到单独的数据框中?

How do I rank values of Pandas row into separate dataframe?

我的 Dataframe df.shape (500,15) 在 (-1,1) 之间有不同的值。

df.head()

0            -0.2966                 -0.1140  ...   0.4699      0.1250
1            -0.3051                 -0.1157  ...   0.6686      0.3290
2            -0.2014                 -0.1427  ...   0.4758      0.4919
3            -0.2703                 -0.0928  ...   0.6004      0.2436
4            -0.3399                 -0.0964  ...   0.3777      0.4808

我想创建一个单独的数据框,它给出该特定行中列的排名。 例如,df_rank(单独的 df)第一行将是行中最大的排名 1 和最低的排名 15 的排名,没有改变 position/sorting。第二行相同,依此类推。

df_rank

0    11    8....    3    7
1    12    8....    1    3
2    13    7....    2    4
3    11    6....    3    6
4    12    6....    2    7

所有 500 行依此类推...

使用DataFrame.rank:

df = df.rank(axis=1, ascending=False, method='dense').astype(int)
print (df)
   0  1  2  3
0  4  3  1  2
1  4  3  1  2
2  4  3  2  1
3  4  3  1  2
4  4  3  2  1