Pandas DataFrame为元素分配了hirachic编号

问题描述 投票:1回答:1

我有以下Dataframe:

   a  b  c  d
0  1  4  9  2
1  2  5  8  7
2  4  6  2  3
3  3  2  7  5

我想根据它的顺序为一行中的每个元素分配一个数字。结果应如下所示:

   a  b  c  d
0  1  3  4  2
1  1  2  4  3
2  3  4  1  2
3  2  1  4  3 

我试图使用不起作用的np.argsort函数。有人知道一个简单的方法吗?谢谢。

python pandas dataframe filtering
1个回答
0
投票

使用DataFrame.rank

df = df.rank(axis=1).astype(int)
print (df)
   a  b  c  d
0  1  3  4  2
1  1  2  4  3
2  3  4  1  2
3  2  1  4  3
© www.soinside.com 2019 - 2024. All rights reserved.