如何将 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 行依此类推...
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
我的 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 行依此类推...
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