Setup
Consider the dataframe df
np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(4, 5), columns=list('ABCDE'))
df
A B C D E
0 0.444939 0.407554 0.460148 0.465239 0.462691
1 0.016545 0.850445 0.817744 0.777962 0.757983
2 0.934829 0.831104 0.879891 0.926879 0.721535
3 0.117642 0.145906 0.199844 0.437564 0.100702
I want a dataframe where the columns are ranks and each row is ['A', 'B', 'C', 'D', 'E']
in rank order.
Ranks
df.rank(1).astype(int)
A B C D E
0 2 1 3 5 4
1 1 5 4 3 2
2 5 2 3 4 1
3 2 3 4 5 1
Expected Results
0 1 2 3 4 5
0 B A C E D
1 A E D C B
2 E B C D A
3 E A B C D
Further explanation
I want to see each row to show me the column in their rank order. The first row has 'B'
first because it had the first ranking in that row of the original data frame.